这可能是一个重复的问题,但是如果找到另一个,我将找不到它。
我一直在寻找有关URL重写安全性的建议?它会停止SQL注入还是XSS?如果没有,一个人如何规避呢?
我问的原因是因为我不确定重写所需要的过程。我认为该URL有效地危险吗?
[http://www.website.com/article/1'UNION ALL ...
URL重写与防止SQL注入没有任何关系! URL重写主要用于将“难看的” URL(如http://domain.com/index.php?name=1&value=2)转换为漂亮的URL,如http://domain.com/1/2)。
它完全不会阻止SQL注入。必须通过确保用户输入内容不包含会修改SQL语句的字符来防止SQL注入,以使SQL语句执行非预期的操作。示例:
您有一条SQL语句,如:
SELECT * FROM $tableName;
并且$tableName
是用户通过网络表单输入的参数。现在,用户可以输入Users; DROP TABLE Users; --
。这将是不好的:
SELECT * FROM Users; DROP TABLE Users; --;
但是,这不能通过URL重写解决。
否,URL重写无法阻止XSS或SQL注入。
如果要避免SQL注入,请在代码中使用DBI库(带有prepare / execute语句)。
如果您想避免XSS攻击,也请在代码中过滤用户输入。
URL重写和安全性是两件事。 URL重写仅更改了URL中变量的表示形式,但根本不安全。从网址恢复后,我们必须保护代码中的变量。]>
但是对于仅基于$ _GET变量的SQL注入,如果我们使用此方法:
URL重写具有称为“请求阻止”的功能。您可以使用此功能来扫描并阻止第三方工具发送欺骗请求。