$ _GET上的PHP安全建议(将干净的URL与查询字符串组合在一起)

时间:2011-10-26 19:34:30

标签: php

我正在使用这样的“干净”网址:

http://localhost/controller/action/param

我使用自定义函数访问参数,例如my_get(1),my_get(2)等......

但有时候我认为我需要将它们与查询字符串结合起来。 例如:如果我需要包含带有多个斜杠的路径的参数值,例如:

http://localhost/controller/action/param?mypath=foo/bar/qux.jpg

我之所以这样做是因为如果使用干净的URL完成它会更难实现。

现在我的问题是,在结合干净的URL和查询字符串时,我只打算允许这个字符类:

[.&=a-z0-9\/_-]

我想知道它会有任何安全问题吗?我应该禁止某些角色吗?

1 个答案:

答案 0 :(得分:0)

不介意字符串格式化,但请验证传递的路径...在示例中您说:“在上面的示例中,mypath的值将使用unlink()删除;”“好吧,如果你不知道在最坏的情况下验证它,攻击者可以删除服务器文件系统上的任何文件......;)

所以不要为使用正则表达式验证字符串而烦恼,但要验证字符串的内容并使其对您的环境安全......:)