所以几个月前我开始遇到这个问题,当我尝试访问某些网站时,我会随机获得一个访问被拒绝的页面。起初我并没有多想,只是继续我的生活。快进到现在。我试图注册 March Madness 支架但被阻止了。我无法在 Kohls 或其他在线购物网站结账。我买不到灰狗或 amtrack 的票。我无法访问我的银行帐户。从本质上讲,它变得有点不方便。
在随机尝试之后,我尝试以不同的方式拼写我的姓氏 (Fread)。我改用 Frea,末尾没有“d”。神奇的是,一切又恢复正常了。在与一些 friend 交谈后,他们帮我解决了问题,我们了解到 Fread 是一个 php 命令 fread 并且我们意识到如果我们输入其他 php 命令,即 fwrite,我们也会得到一个访问被拒绝的页面。
问题解决了,但不是真的。我不知道如何解决这个问题。我什至不知道从众多阻止我的网站与谁交谈或联系。我的银行已经处理这个问题 2 个月了,并且在 2 周内没有向我更新他们正在做什么来解决这个问题。
不幸的是,我无法使用姓氏拼写错误的信用卡,也无法登录我的银行账户,因为 fread 是我用户名的一部分。如果有任何反馈可以帮助我恢复在这些网站上再次使用我的姓氏,我将不胜感激!!
我应该联系谁?如何让人们足够关心来修复它?为什么?有帮助的想法?
为了让每个人都能看到我没有说谎,这里是一个发生这种情况的示例网站。本演练会将您链接到 footlocker 网站以创建帐户。到达那里后,您只需在姓氏字段中输入 Fread,然后点击提交。砰!拒绝访问。返回并将其更改为 Fwrite 并点击提交。砰!拒绝访问。继续,现在输入您的名字,或任何非 php 命令。现在它可以工作并且没有访问被拒绝。
请帮忙!
*****注意:我在不同的 IP 地址、不同的计算机、不同的操作系统上尝试过此操作,让我的 friend 在完全不同的城镇尝试过,但错误无处不在。我的家人也有相同的姓氏。
最佳答案
完全披露:我是为 Fread 女士测试和验证此错误的人之一。
考虑到这个问题出现的如此突然以及问题的广泛性,这显然不仅仅是一两家公司的开发人员疏忽大意,也显然不仅仅是旧网站。如果美国国税局、你的银行、Amtrak、Greyhound、Footlocker 和其他大公司几乎同时开始为你倒闭,它一定与更新的共享代码有关,这很难追踪。然而……
没想到,自己在做一些自娱自乐的web开发时遇到了同样类型的错误。我试图发布字符串“测试事件;描述将放在此处”,并收到 403 错误。经过一番折腾和反复试验后,结果证明分号是罪魁祸首,删除分号后,POST 起作用了。
显然,并非每个 分号实例都会对服务器构成威胁,因此我发现该规则非常愚蠢。这让我想起了这个问题,所以我尝试提交相同的字符串(减去分号),最后加上“fread”。瞧,403 回来了。
在安全性较差的网站上,黑客可以将代码注入(inject)输入字段,这样服务器将运行代码而不是存储数据。这称为跨站点脚本或 XSS。自然地,网站管理员和网络开发人员希望防止这种情况发生。
在这种情况下,服务器似乎看到了一些看起来像命令的东西(这使它怀疑是 XSS 尝试)并且 panic 。在我的例子中,它看到了一个分号,这是一个命令终止符。在你的,它看到了它认为是文件读取命令的内容。在这两种情况下,服务器都认为我们是“威胁”,并选择拒绝我们通过 403 错误访问我们请求的资源。
罪魁祸首似乎是 ModSecurity ,一个用于 Apache 和其他 Web 服务器的模块,它(除其他外)为可疑的 XSS 攻击筛选 POST 输入。当我在我的网站上禁用它时,我可以发布我想要的任何东西,因为(我觉得)我应该这样做。
ModSecurity 是 updated to version 2.9.1 2016 年 3 月 9 日,在此之前有相对稳定的候选版本,可能使用范围很窄,所以时间安排得当。今天它的使用非常广泛,因此考虑到问题的相似性和时间安排,Amtrak/Greyhound/Footlocker 很可能都在使用这个模块。
好消息:我有 90% 的把握肯定是 ModSecurity,他们可能是解决此问题的最佳单一联系人。您可以考虑将问题发布到他们的 GitHub 页面,或者直接联系一两个开发人员提出问题。
坏消息:他们可能仍将您视为边缘案例。此外,如果/当 ModSecurity 发布更新时,实际的最终产品修复可能取决于各个站点的管理员决定更新他们的内容。但作为起点,与开发团队交谈当然仍然值得。
祝你好运!
关于php - 拒绝访问 : My last name is being read in as a php command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36995646/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
大家好,我正在尝试设置一个开发环境,并且我一直在关注以下教程:Linktotutorial我做得不是很好,除了最基本的版本控制内容外,我对终端命令没有任何实际经验。我点击了第一个链接并尝试运行source~/.bash_profile我得到了错误;mkdir:/usr/local/rbenv/shims:权限被拒绝mkdir:/usr/local/rbenv/versions:权限被拒绝现在每次我加载终端时都会出现错误。bash_profile的内容;exportPATH=/usr/local/rbenv/bin:$PATHexportRBENV_ROOT=/usr/local/rbe
我想从then子句中访问case语句表达式,即food="cheese"casefoodwhen"dip"then"carrotsticks"when"cheese"then"#{expr}crackers"else"mayo"end在这种情况下,expr是食物的当前值(value)。在这种情况下,我知道,我可以简单地访问变量food,但是在某些情况下,该值可能无法再访问(array.shift等)。除了将expr移出到局部变量然后访问它之外,是否有直接访问caseexpr值的方法?罗亚附注我知道这个具体示例很简单,只是一个示例场景。 最佳答案
我理解(我认为)Ruby中类变量和类的实例变量之间的区别。我想知道如何从该类外部访问该类的实例变量。从内部(即在类方法中而不是实例方法中),它可以直接访问,但是从外部,有没有办法做MyClass.class.[@$#]variablename?我没有任何具体原因要这样做,只是学习Ruby并想知道是否可行。 最佳答案 classMyClass@my_class_instance_var="foo"class上述yield:>>foo我相信Arkku演示了如何从类外部访问类变量(@@),而不是类实例变量(@)。我从这篇文章中提取了上述内
我试图在我的网站上实现使用Facebook登录功能,但在尝试从Facebook取回访问token时遇到障碍。这是我的代码:ifparams[:error_reason]=="user_denied"thenflash[:error]="TologinwithFacebook,youmustclick'Allow'toletthesiteaccessyourinformation"redirect_to:loginelsifparams[:code]thentoken_uri=URI.parse("https://graph.facebook.com/oauth/access_token
我有以下代码,它下载一个文件,然后将文件的内容读入一个变量。使用该变量,它执行一个命令。这个配方不会收敛,因为/root/foo在编译阶段不存在。我可以通过多个聚合和一个来解决这个问题ifFile.exist但我想用一个收敛来完成它。关于如何做到这一点有什么想法吗?execute'download_joiner'docommand"awss3cps3://bucket/foo/root/foo"not_if{::File.exist?('/root/foo')}endpassword=::File.read('/root/foo').chompexecute'join_domain'd
我有一个(我认为)相对简单的has_many:through与连接表的关系:classUser:user_following_thing_relationshipsendclassThing:user_following_thing_relationships,:source=>:userendclassUserFollowingThingRelationship还有这些rspec测试(我知道这些不一定是好的测试,这些只是为了说明正在发生的事情):describeThingdobefore(:each)do@user=User.create!(:name=>"Fred")@thing=