我正在开发一个PHP Web应用程序,我想为应用程序提供更多安全性,以便没有人可以轻易地破坏功能.
关于我的问题的简要说明:在一个模块中有一个阶段,我正在检查请求的来源(来自此请求的来源)
目前,我正在使用HTTP_REFERRER
变量(在php中可用).我正在使用一个特定的URL(例如http://www.example.com/test.php)检查此变量值.如果存在完全匹配,则只有我调用进一步的操作.
我对上述方法感到困惑,我是否应该使用HTTP_REFERRER或检查IP地址(如果来自任何特定的IP地址,有效请求)?
我也想知道提供安全性的更好方法.
有人有想法那么请分享?
提前致谢
Web安全性的第1课:永远不要信任用户输入.当我说永远不会,我的意思是永远不会.;)包含PHP中的HTTP_REFER var,它很容易受到http标头的攻击(来源:http://www.mustap.com/phpzone_post_62_how-to-bypass-the-referer-se)
检查源的可能解决方案是使用表单令牌(csrf保护):http://www.thespanner.co.uk/2007/04/12/one-time-form-tokens/但不安全要么只能用你自己的来源.
一个简单的CSRF(跨站点请求伪造)保护示例:(因此很简单.对于更安全/更健壮的解决方案,请参阅The Rook的答案)
1)在您的表单页面中,创建某种令牌并将其放入您的会话和隐藏表单字段中:
2)在表单处理程序中检查令牌是否有效.