文章内容

2020/1/16 15:43:05,作 者: 黄兵

浏览器指纹

获取浏览器的一些信息:

function get_client_info() {
    // 如果存在问题,生成追踪id,方便后面检查问题。
    // 完整的浏览器名称
    get_client_appName = navigator.appName;
    // 表示当前浏览器是否启用了cookie
    get_client_cookieEnable = navigator.cookieEnabled;
    // 表示当前浏览器是否启用了Java
    get_client_javaEnable = navigator.javaEnabled();
    // 浏览器所在的系统平台
    get_client_platform = navigator.platform;
    // 浏览器中安装插件的信息数组
    get_client_plugins = navigator.plugins;
    // 浏览器的用户代理字符串
    get_client_userAgent = navigator.userAgent;
    // 屏幕像素高度减系统部件之后的高度值
    get_client_availHeight = screen.availHeight;
    // 屏幕像素宽度减系统部件之后的宽度值
    get_client_availWidth = screen.availWidth;
    // 屏幕像素高度
    get_client_height = screen.height;
    // 屏幕像素宽度
    get_client_width = screen.width;
    client_info = {
        'get_client_appName': get_client_appName,
        'get_client_cookieEnable': get_client_cookieEnable,
        'get_client_javaEnable': get_client_javaEnable,
        'get_client_platform': get_client_platform,
        'get_client_plugins': get_client_plugins,
        'get_client_userAgent': get_client_userAgent,
        'get_client_availHeight': get_client_availHeight,
        'get_client_availWidth': get_client_availWidth,
        'get_client_height': get_client_height,
        'get_client_width': get_client_width
    };
    return client_info;
}

后端对浏览器信息的存储:

@auth.route('/get_client_info', methods=['POST'])
def get_client_info():
    get_data = json.loads(request.form.get('data'))
    if get_data is None:
        return jsonify({'result': 'error'})
    get_client_appName = get_data['get_client_appName']
    get_client_cookieEnable = get_data['get_client_cookieEnable']
    if get_client_cookieEnable:
        get_client_cookieEnable = 1
    else:
        get_client_cookieEnable = 0
    get_client_javaEnable = get_data['get_client_javaEnable']
    if get_client_javaEnable:
        get_client_javaEnable = 1
    else:
        get_client_javaEnable = 0
    get_client_platform = get_data['get_client_platform']
    get_client_plugins = get_data['get_client_plugins']
    get_client_userAgent = get_data['get_client_userAgent']
    get_client_availHeight = get_data['get_client_availHeight']
    get_client_availWidth = get_data['get_client_availWidth']
    get_client_height = get_data['get_client_height']
    get_client_width = get_data['get_client_width']
    get_remote_ip = request.access_route[0]
    uuid_id = uuid.uuid5(uuid.NAMESPACE_DNS, str(uuid.uuid1()))
    store_user_info = StoreUserClientInfo(id=uuid_id, client_appName=get_client_appName,
                                          client_cookieEnable=get_client_cookieEnable,
                                          client_javaEnable=get_client_javaEnable, client_platform=get_client_platform,
                                          client_plugins=get_client_plugins, client_userAgent=get_client_userAgent,
                                          client_availHeight=get_client_availHeight,
                                          client_availWidth=get_client_availWidth, client_height=get_client_height,
                                          client_width=get_client_width, remote_ip=get_remote_ip)
    try:
        db.session.add(store_user_info)
        db.session.commit()
    except:
        return jsonify({'result': 'error'})
    return jsonify({'result': uuid_id})


分享到:

发表评论

评论列表