所以有这个人垃圾邮件我的phpBB2论坛,因为他被禁止。 他不断与代理回来,我想用我的htaccess阻止他们。 我的论坛位于http://www.site.com/forum/我将一个.htaccess文件放在/ forum /中,其中包含以下内容,如网上find的那样:
RewriteEngine on RewriteCond %{HTTP:VIA} !^$ [OR] RewriteCond %{HTTP:FORWARDED} !^$ [OR] RewriteCond %{HTTP:USERAGENT_VIA} !^$ [OR] RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR] RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR] RewriteCond %{HTTP:HTTP_CLIENT_IP} !^$ RewriteRule ^(.*)$ - [F]
我听说这非常准确。 所以我试了一下,networking代理无法访问页面。 但它工作了5分钟,现在它不阻止任何东西…我尝试了不同的代理,基于networking或没有,并没有被阻止…我想知道如果我做错了什么,htaccess看起来是正确的我!
如果你们有一个想法,那就太棒了。 我总是在Stackoverflow上find我的答案,所以我想我应该在这里问:P
干杯
我希望你明白,如果你会使你的代理阻止规则的工作,这将不仅禁止垃圾邮件发送者,但所有使用代理的用户。
你可以尝试loggingX-Forwarded-For头(例如,如果你使用apache,添加“%{X-Forwarded-For} i”来login)。 除非垃圾邮件发送者正在使用匿名代理,否则这应该为访问日志中的访问者提供真正的访问权限。 然后匹配他的职位时间戳对http访问日志(使用几秒钟的时间窗口),你应该得到他的真实IP。 它可能只是工作。
如果垃圾邮件发送者正在使用匿名代理,则可能需要缓和您的post。 你应该这样做。 自动接受来自知名用户的post,并调整新/不可信用户的post。 我不知道phpbb,但它可能支持适度。
编辑__
如果你真的想阻止(坏)代理尝试使用mod_spamhaus ,它应该阻止报告的垃圾邮件和打开代理。 查看垃圾邮件网站 ,了解正在报告什么ips。 我想不出任何可能阻止匿名代理的mod_rewrite规则(我一直在想)
我为我的工作网站做的3件事,帮助我们消除了99.9%的所有联系表格垃圾邮件:
1)测量从联系表单加载到提交时间的时间。 如果有人在<10秒内提交表格,那么它必须是一台计算机,因为即使有一个地址填充插件,人们也不可能在那个时候回答所有需要的问题。 你可能会考虑类似的策略来防止脚本快速发布。
2)如果联系消息包含多个或可疑的URL,标记为垃圾邮件。 防止多个URL链接可能不适用于公告栏的情况,但如果您可以在垃圾邮件中发现任何特定的唯一URL模式,则可以过滤这些post。
3)我们有一个虚假的隐藏的电子邮件地址字段人类用户永远不会看到,所以如果表单提交的隐藏字段有一个值,我们知道它不是一个人…可能是你可以做一个类似的一个虚假的评论框?
这些可能不适用于你,因为它们将在PHP级别实现,而不是在apache上实现,而且它们只对真正的自动化脚本非常有效,但希望至less可以为您提供一些其他方法来处理垃圾邮件问题