当前位置:  开发笔记 > 编程语言 > 正文

PHP表格安全与Referer

如何解决《PHP表格安全与Referer》经验,为你挑选了1个好方法。

我正在组建一个可以让用户输入的网站.我想知道是否写了一个函数:

if(getenv("HTTP_REFERER") != 'http://www.myURL.com/submitArea'){
        die('don\'t be an jerk, ruin your own site');   
    }else{
        // continue with form processing    
    }

足以防止跨站点表单提交.

编辑:如果没有,防止表单从其他主机提交的最佳做法是什么?



1> Pekka suppor..:

不 - HTTP_REFERER可以在客户端自由欺骗,并不是请求来自何处的可靠指标.

更新:我误读了关于跨站点伪造的部分:为此,检查引用一种有效的安全措施,因为CSRF依赖于指向受保护页面的被操纵链接(被攻击用户具有权限).用户@Rook是正确的.

唯一的例外是,攻击可能发生在被攻击的Web应用程序中,例如通过注入恶意JavaScript代码.在这种情况下,引用检查是无用的,因为攻击来自"安全"URL,但可以说是基于会话或一次性令牌的解决方案,因为令牌可以到达恶意JavaScript并且可以是容易检索.

但是,使用一次性令牌非常有利于防止这种攻击,因为HTTP_REFERER某些代理会将其剥离.


@Jascha最合适的方法是使用在表单中设置的会话或一次性令牌,并在处理表单时进行检查.(您可以将令牌存储在数据库中.)这样,您至少可以确保人们必须首先请求您的表单(如果真的有帮助的话.)
推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有