【问题标题】:.htaccess remove a part of the url in PHPthumb.htaccess 删除 PHPthumb 中的部分 url
【发布时间】:2011-11-30 13:09:20
【问题描述】:

我做了研究,找不到任何有用的东西

我的 phpthumb 有问题,

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

我需要替换 ../ 继续 src。基本上删除所有 ../ 出现。或者重定向到错误页面。我两个都喜欢。

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

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

提前致谢。

【问题讨论】:

  • 试试这个:RewriteRule ^(.+phpThumb\.php)\?src=(\.\./)+[^&]+(.*)$ $1?src=images/unknown.gif$3 [NC] 如果 ../ 在值中,它将替换 src=value,问题是 src 在这种情况下应该是第一个获取参数

标签: php regex .htaccess mod-rewrite zend-framework


【解决方案1】:

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

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

类似这样的:

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

【讨论】:

猜你喜欢
  • 2012-02-26
  • 2017-07-04
  • 2018-06-10
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 2015-12-04
  • 2023-03-27
相关资源
最近更新 更多