php - 在表单和链接中使用 $_SERVER ['REQUEST_URI' ] 或 $_SERVER ['PHP_SELF' ] 的风险

标签 php

使用 $_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/

相关文章:

php - API Feed无法在实时网站上向我提供数据

php - 为什么这种使用数组引用调用 PHP 函数的较短方法会导致不同的结果?

php - 我如何从android中的php服务器获取这个json数据

javascript - 如何从php返回特定数据到jquery ajax?

php - 不使用 Objective C 向 PHP POST web 服务提交数据

javascript - 如何使用ajax调用php类方法

php - MySQL 未知列 '0'

php - 为什么我将 json 的显示加倍

c# - 如何创建支持 UTF-8 的最简单的 PHP Get API?

PHP - 替换拆分