gpt4 book ai didi

regex - 防图像盗链(自定义正则表达式)

转载 作者:行者123 更新时间:2023-12-01 14:00:22 25 4
gpt4 key购买 nike

我想设置一个正则表达式,禁止对不以以下模式结尾的图像进行热链接:-200.jpg

“200”实际上可以是“150”或“250”或 100-999 之间的任何数字(即 3 个字符)。 .jpg 可以是.jpeg 或.png,允许盗链.gif。

我从这样的事情开始:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?mywebsite\.com/ [NC]
RewriteRule [^0-9]{3}\.(jpe?g|png)$ /img/hotlink.gif [NC,R,L]

例如:这应该被允许:h*ttp://mywebsite.tld/dir/dir/hello_sdfk456er_142.jpg-200.jpg 而这应该被拒绝:h*ttp://mywebsite.tld/dir/dir/hello_sdfk456er_142.jpg

但这行不通。

此外,请考虑以下事项:

我正在使用 url_rewriting 以便显示图像的 html 页面类似于 h*ttp://mywebsite.tld/username/1337.jpg
其中 1337 代表数据库中图像的 ID。我之所以强调这种微妙之处是因为有这样一条规则:

RewriteRule ![0-9]{3}\.(jpe?g|png)$ /img/hotlink.gif [NC,R,L]

不会工作。

编辑:

我只是添加了一些异常(exception)来解决它:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?mywebsite\.com/ [NC]
RewriteCond %{REQUEST_URI} !-[0-9]{3}\.(jpe?g|gif|png)$ [NC]
RewriteCond %{REQUEST_URI} !/[0-9]+\.(jpe?g|gif|png)$ [NC]
RewriteRule \.(jpe?g|png)$ /img/hotlink.gif [NC,R,L]

如果您知道“更性感”的方式,请告诉我。无论如何要感谢尝试过的人(删除了他的消息?)

最佳答案

您的解决方案有两个缺陷:

  1. 带有 /[0-9]+ 的第 4 行还将允许热链接名为 200.jpg(无连字符)的图像。
  2. 缺少 RewriteRule 条件,因此不允许热链接 .gif 图像。

这是更新后的版本:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?mywebsite\.com/ [NC]
RewriteCond %{REQUEST_URI} !-[0-9]{3}\.(jpe?g|gif|png)$ [NC]
RewriteRule .* http://mywebsite.com/img/hotlink.gif [NC,R,L]

你可以这样阅读:

  1. 如果推荐人不为空
  2. 推荐人不是我的网站
  3. 并且请求的图像不以允许的模式结尾(例如 -123.gif)
  4. 然后展示一个hotlink.gif

关于regex - 防图像盗链(自定义正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13750419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com