在燒瓶應用的文字,我將電子郵件發送到用戶:逃生與flask.escape
msg = MIMEMultipart('alternative')
msg['Subject'] = 'About resetting your password'
...
reset_key = os.urandom(64).encode('base64')
link = request.host_url + "reset_pwd?rk=" + reset_key
html = '<html><body><a href="' + link + '">Reset password</a></body></html>'
part = MIMEText(html, 'html')
msg.attach(part)
...
server = smtplib.SMTP(mail_server)
server.starttls()
server.login(mail_username, mail_password)
server.sendmail(mail_username, to_addr, msg.as_string())
server.quit()
然而,reset_key有斜線和其他非安全的字符。所以我沒有
link = request.host_url + "reset_pwd?rk=" + flask.escape(reset_key)
但是,當我檢查我的電子郵件,以某種方式鏈接被打破,也許不能逃脫。如何正確地轉義文本?
編輯:更正了代碼中的錯字。
我只是添加評論在這裏,我有與flask.escape有一些奇怪的行爲。它不僅修改字符串以轉義字符,還修改字符串,以便在添加更多字符時,即使不希望這些字符轉義,它們也會自動轉義。因此,我使用這裏的代碼進行基本轉義:https://wiki.python.org/moin/EscapingHtml – Soferio