34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
# server/security.py
|
|
from flask import request
|
|
import platform
|
|
import hashlib
|
|
|
|
# Mock user database (username: password) - replace with a real database
|
|
USER_DATABASE = {
|
|
"iphone_user": hashlib.sha256("iphone_password".encode()).hexdigest(),
|
|
"laptop_user": hashlib.sha256("laptop_password".encode()).hexdigest(),
|
|
}
|
|
|
|
# Function to validate user credentials
|
|
def validate_user(username, password):
|
|
hashed_password = hashlib.sha256(password.encode()).hexdigest()
|
|
return USER_DATABASE.get(username) == hashed_password
|
|
|
|
# Function to extract device information
|
|
def get_device_info():
|
|
user_agent = request.headers.get('User-Agent', 'Unknown')
|
|
return {
|
|
"ip": request.remote_addr,
|
|
"user_agent": user_agent,
|
|
"isa": platform.machine(), # Get system architecture
|
|
"os": platform.system(), # Get OS
|
|
}
|
|
|
|
# Function to identify the uploader based on device info
|
|
def identify_uploader():
|
|
device_info = get_device_info()
|
|
if "iPhone" in device_info['user_agent']:
|
|
return f"Uploaded by iPhone (IP: {device_info['ip']})"
|
|
else:
|
|
return f"Uploaded by {device_info['isa']} {device_info['os']} (IP: {device_info['ip']})"
|