技术:Django 1.7.7,Python 3
currentUrl = request.get_full_path()
if request.method == 'POST' and request.POST('/path/to/thing', currentUrl):
# Do something
我试图检查请求方法是否是POST,以及请求是来自特定URL,还是不包括用户输入作为URL的一部分(如果这是有意义的话)。
因此,举例来说,让我们说用户填写表格,然后他/她提交单词"你好。"我想查看表单是否来自" some / base / url"没有检查是否"你好"也在网址中。
实现这一目标的最佳方法是什么?
发现这个工作:
if request.method == 'GET' and '/path/to/thing' in request.path_info
答案 0 :(得分:1)
HttpRequest.POST
包含所有给定HTTP POST参数的类字典对象, 假设请求包含表单数据
HttpRequest.POST
不是一种使用方法。
如果你有多个选项可以处理你的表单,例如你想要一个提交按钮,一个提交按钮添加另一个,那么你需要为每个按钮命名,然后在POST参数与否。
如果您害怕从未知地点提交表单。然后csrf_token
为你做。
CSRF中间件和模板标签提供易于使用的保护 反对跨站点请求伪造。发生此类攻击时 恶意网站包含链接,表单按钮或一些JavaScript 用于在您的网站上执行某些操作,使用 访问恶意网站的登录用户的凭据 浏览器。相关类型的攻击,“登录CSRF”,即攻击 网站欺骗用户的浏览器登录某人的网站 其他人的证书,也包括在内。
阅读:
https://docs.djangoproject.com/en/1.8/ref/request-response/ https://docs.djangoproject.com/en/1.8/ref/csrf/