作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在模型层验证我所有的表单数据,但我也检查我的表单是从哪里提交的(HTTP Referrer),我还发送一个带有表单的 token 以帮助防止跨站点请求伪造,我的问题是这些应该在哪里检查要做吗?在 Controller 层还是在模型层?
我想出了几种不同的方法来实现这一点,其中一种是在我的 AbstractController
中使用某种 protected 方法来验证表单源和发布的 token ,但这可能会破坏 SRP。
最佳答案
(..) where should these checks be done? In the controller or in the model layer?
都没有。
在我看来,CSRF 保护应该在与其他形式的访问控制相同的级别上处理:在 MVC 三元组之外。
如果应用程序无法验证 token ,则意味着 Request
实例(或您的替代实例)中的数据不可信,因此需要报废。我会在 初始化 Controller
和/View
实例之前执行此类检查。
关于php - 在哪里验证 MVC 应用程序中的表单引荐来源网址和 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16923861/
我有一个域site.com,我想避免来自诸如new.site.com,used.site.com等子域的引荐。 我使用了_gaq.push(['_ setDomainName','site.com']
我是一名优秀的程序员,十分优秀!