2011-11-30 106 views
0

我做的研究,并无法找到任何有用的.htaccess删除网址的一部分,在PHPthumb

我有phpthumb问题,

http://localhost/sandbox/public/PhpThumb/phpThumb.php?src=../../../../../../../../../etc/passwd&w=140px&h=120px&q=100 

我需要更换的../程序src。基本上删除所有../ occrunces。或者重定向到错误页面。我更喜欢两者。

RewriteRule ^(.*)phpThumb\.php?(src)?(=)?(\.\.\/)*$ images/unknown.gif [NC] 

我怀疑我创建的上述规则是不正确的。请指教。

在此先感谢。

+0

试试这个:'重写规则^(+ phpThumb \ .php)\?src =(\。\ ./)+ [^&] +(。*)$ $ 1?src = images/unknown.gif $ 3 [NC]'它会替换src = /是在值中,问题是src应该是第一个get参数在这种情况下 – noob

回答

2

你不能通过mod_rewrite这样做这种修改。它只关心实际的URL,而不是GET参数。您应该在执行的PHP脚本中处理这些内容。

其他选项将使用%{QUERY_STRING}添加RewriteCond这是(与RewriteRule比较)能够使用GET参数。然后你可以使用%1%2,...在你RewriteRule的更换部件,而不是$1$2,...

事情是这样的:

RewriteCond %{QUERY_STRING} \.\./ 
RewriteRule phpThumb\.php$ images/unknown.gif [L] 
+0

当然你可以看看[this](http://www.the-art-of-web.com/system/rewrite/ 1 /)示例 – noob

+0

这是一个很好的参考。 –

+0

http://www.simonecarletti.com/blog/2009/01/apache-query-string-redirects/这也很棒。顺便说一句你的回答有帮助谢谢。 –