使用 $_SERVER['REQUEST_URI']
或 $_SERVER['PHP_SELF']
作为表单中的操作或作为 href链接?
如果是这样,可以采取哪些措施来降低风险?
最佳答案
您在 www.example.com/form.php 上创建了一个表单。一年后,您会忘记 URL 只是抓取页面加载的任何 URL。
假设您在某个时候在您的框架中添加了一个“删除所有内容”全局选项,作为一个完全不同(有点奇怪)请求的一部分。
现在,有人向您发送此链接:www.example.com/form.php?delete_everything=true。因为您只是获取该 URL 并将其设置为操作,所以现在它就是您表单上的操作。哎呀。 XSS 攻击基本上以这种方式工作。
始终假设您的代码将以您第一次编写代码时意想不到的方式使用(甚至被您使用,尤其是被黑客使用)。
你是怎么绕过它的?硬编码 URL!您可以包含一个返回 URL 的函数。实际上,这就是 Symfony 或 CodeIgniter 等框架解决问题的方式。
关于php - 在表单和链接中使用 $_SERVER ['REQUEST_URI' ] 或 $_SERVER ['PHP_SELF' ] 的风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14585525/