Flask有没有办法加扰/掩盖/哈希变量网址?

时间:2018-04-04 02:12:31

标签: python flask

我想加扰或屏蔽我的可变网址,以便人们无法查看/了解隐私信息。

例如,如果我有路线,

@app.route('/customer/<custid>')
def display(custid):
    # do stuff
    return render_template('custpage.html' foo=foo)

custid=1将为~/customer/1/

现在有一种方法可以在网址中对客户ID进行哈希处理 custid=1将是~/customer/somehash/

1 个答案:

答案 0 :(得分:0)

我会使用类似的方法,就好像你要创建推荐网址一样。

创建一个新列,您将在其中保存唯一的字符串,该字符串可以标识此用户。您将使用唯一的字符串,而不是在所有URL中使用ID。

你可以在id中创建一个哈希并将其保存在那里,或者只是使用随机函数来创建一个长字符串。

如果你想使用哈希(但这不是必需的):

import hashlib
hash_object = hashlib.sha256(b"user-id-" + str.encode(str(current_user.id)))

您当然可以生成一个具有一定长度的随机代码。长度为15+时,生成相同代码的几率几乎为0.并且该列的唯一属性将阻止生成相同代码的超级罕见情况。

def get_promo_code(num_chars):
    code_chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    code = ''
    for i in range(0, num_chars):
        slice_start = random.randint(0, len(code_chars) - 1)
        code += code_chars[slice_start: slice_start + 1]
    return code

称之为:

get_promo_code(15)