-1

我使用 $_GET 方法创建动态 URL:

$page = $_GET['id'];

网址:mysite.com/index.php?id=1

但是,如果有人插入恶意 URL?

网址:mysite.com/index.php&id= http://www.infectedsite.com/viruses.txt ?

如何治疗?

4

1 回答 1

2

这很容易处理。您可以准确处理查询参数的使用方式,因此请确保在使用该参数时采取适当的预防措施。

如果您正在处理数据库查询,请确保正确转义您的 get 参数。这取决于您使用的内容,但一些有用的页面是:http: //php.net/manual/en/function.mysql-real-escape-string.php(已弃用,但会让您很好地理解转义字符串)和 PDO 库中的准备语句http://php.net/manual/en/pdo.prepared-statements.php

另一件需要注意的是跨站脚本(XSS)。一个很好的阅读来源是https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)。只需考虑一下您可能会如何受到这样的攻击,您就可以在代码中防范它。链接的网页在这方面也提供了很好的建议。

Brad 在评论中也提到,PHP 提供了一系列过滤功能。这些可用于清理和验证您的数据。这方面的例子在http://php.net/manual/en/book.filter.php

除此之外,在使用请求参数时主要使用您的常识。如果感觉不对或不安全,那可能是。

于 2013-03-22T23:05:19.720 回答