这可能是一个重复的问题,但我无法找到另一个问题。
我一直在寻找有关网址重写安全性的建议?它会停止SQL注入还是XSS?如果没有,人们将如何围绕它?
我问的原因是因为我不确定重写的过程。我是否正确地相信此URL可能实际上是危险的:
http://www.website.com/article/1'UNION ALL ...
答案 0 :(得分:3)
URL重写与防止SQL注入无关! URL重写主要用于转变"丑陋" URLS(如http://domain.com/index.php?name=1&value=2)到美国网址http://domain.com/1/2)。
它根本不会阻止SQL注入。必须通过确保用户输入不包含修改SQL语句的字符来防止SQL注入,以便它执行非预期的操作。例如:
您有一个SQL语句,如:
SELECT * FROM $tableName;
$tableName
是用户通过网络表单输入的参数。现在,用户可以输入Users; DROP TABLE Users; --
。这很糟糕:
SELECT * FROM Users; DROP TABLE Users; --;
然而,这不能通过URL重写来解决。
答案 1 :(得分:1)
不,URL重写无法阻止XSS或SQL注入。
如果要避免SQL注入,请在代码中使用DBI库(带有prepare / execute语句)。
如果您想避免XSS攻击,请在您的代码中过滤您的用户输入。
答案 2 :(得分:1)
URL重写和安全性是两回事。 URL重写只是更改了url中变量的表示,但根本不安全。从网址恢复后,我们必须保护代码中的变量。
答案 3 :(得分:0)
但对于仅基于$ _GET变量的SQL注入,如果我们使用它:
RewriteRule ^([a-z] ) - ([0-9] )。html $ /index.php?page=$1&id=$2 [L]
$ _GET [“id”]变量是否可注射?我们只用整数强制该值。
答案 4 :(得分:0)
URL重写具有称为“请求阻止”的功能。您可以使用此功能来扫描并阻止第3方工具发送欺骗请求。