2011-11-30 72 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/這也很棒。順便說一句你的回答有幫助謝謝。 –