URL重写有多安全?

时间:2012-03-06 10:09:02

标签: security mod-rewrite

这可能是一个重复的问题,但我无法找到另一个问题。

我一直在寻找有关网址重写安全性的建议?它会停止SQL注入还是XSS?如果没有,人们将如何围绕它?

我问的原因是因为我不确定重写的过程。我是否正确地相信此URL可能实际上是危险的:

http://www.website.com/article/1'UNION ALL ...

5 个答案:

答案 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方工具发送欺骗请求。