使用CakePHP1.3,我有一个(工作)表单,它动态创建了表单字段(通过Javascript)。一切都很好,通过saveAll()保存了多个模型,而且非常漂亮。但是,每当我启用安全组件(希望获得一些自动魔术CSRF保护)时,我都会遇到404黑洞。我知道这可能是(很可能是!)由动态创建的表单字段引起的,如文档中所述。有没有办法让他们一起玩得很好? 最佳答案 你不能一边吃蛋糕一边吃。(茶青!)CSRF保护恰恰意味着只允许提交特定的表单字段列表。此列表在创建表单时确定并固定。您不能受到CSRF保护和动态更改表单中的字段。有两种解决方法:
我有一个脚本从用户那里接收一些数据,然后返回一个散列的情况。在一定时间(比如X秒)内,散列有效,当与原始数据一起返回脚本并在指定时间范围内时,允许访问某些功能。我通过在散列中包含时间戳来做到这一点。我可以通过调用sayfloor(time()/X);来获取时间戳,但这不是在X秒后过期,而是在1到X秒之间的任何时间过期。我通过保存time()%X并将其附加到散列来解决这个问题,然后当我收到它时,解析它并从time()中减去它,所以我的哈希函数看起来有点像这样:functionhash($oldhash=''){static$hash;if(!$hash){$time=time();$ex
一点背景。我为一个非营利组织运营网站。在我注意到一个死链接后,我在网站上运行了一个链接检查器,并发现了更多。因此,我实现了一个自定义404页面来记录任何失败的链接。这使我能够修复损坏的链接并提醒链接到我们的其他人他们的链接已损坏。它很快导致了一个有趣的发现:令人惊讶的是,他们试图规避安全并利用标准软件包中的漏洞,这些软件包在网站上很常见,例如phpmyadmin、论坛等。我记录了违规者的IP地址,几乎完全发现他们不是来自美国,而且我们的组织严格关注美国的一个小区域,因此我想通过PHP以这样的方式禁止他们as:在头文件中加载违规者列表,所有页面都使用该列表,如果属于该列表,则简单地死掉并
我找到了很多登录后重定向到上一页的方法和示例:$_GET-需要验证$_SESSION-如果使用多个选项卡,将覆盖该值$_SERVER['HTTP_REFERER']-它由浏览器发送到服务器在表单上我们可以使用或使用隐藏输入。我可以知道确保返回值的最佳做法是什么吗? 最佳答案 最常见的做法(也是在电子商务网站上的付款结帐中)是隐藏输入,其中包含要重定向到的URL:"/>它似乎对大多数人来说足够安全...... 关于php-登录或返回链接url后确保返回上一页的最佳做法,我们在StackOv
如果我使用PHP的fopen()函数从HTTPS网站检索数据,这就是所谓的安全HTTPS连接。即它是否提供针对中间人和窃听攻击的保护? 最佳答案 不是默认的,不是。它将始终提供某种形式的保护以防止简单的窃听攻击,因为数据将始终被加密(只要您连接到的SSL服务器允许至少使用一种加密密码-是的,空加密密码是在HTTPS连接中允许:roll-eyes:)但是,默认情况下,它不会防止中间人攻击,因为它不会验证服务器的证书,因此您无法确信您已连接到预期的目标服务器。可以打开证书验证。为此,您需要提供一个根证书包,并使用fopen的第四个参数来
假设我们在表单中使用了CSRFtoken,但碰巧我们的网站上存在一个未被注意到的XSS漏洞。据我所知,CSRFtoken保护在这种情况下完全无效,因为攻击者可以通过XSS使用XMLHttpRequest检索它。在这种情况下,有没有一种方法可以让CSRF保护在攻击中幸存下来,或者我们的网站是否应该在执行任何CSRF之王之前首先拥有安全的反XSS保护?在每次页面请求时设置一个新token而不是在登录时设置token是否可以解决这个问题?这带来了一次打开更多表单的问题,我不喜欢它。 最佳答案 您的站点应该关闭您发现的所有XSS漏洞,否则C
我正在处理登录失败的身份验证系统。如果用户登录失败,数据库中的尝试次数会递增,如果达到定义的限制,PHP会将session验证码变量设置为true。因此,当用户(或垃圾邮件机器人)再次获得登录页面时,由于session变量,将显示一个验证码表单但由于垃圾邮件机器人最终可能会删除sessioncookie并重试,因此这可能无效。我应该改用数据库解决方案吗?您将如何实现这一点(使用/或不使用数据库)? 最佳答案 垃圾邮件机器人可以相当轻松地绕过session限制,因此必须在数据库中完成才能有效。垃圾邮件机器人还可以在每次请求时更改其IP
防止网站的某些目录被直接访问的最佳方法是什么?1-在我们要保护的每个目录中创建并放置一个.htaccess文件,并在其中放置下一行:Denyfromall2-在我们要保护的每个目录中创建并放置一个index.php文件,并仅在其中放置下一行代码(这将重定向到网站的主页):3-其他东西(它是什么?) 最佳答案 如评论中所述,最安全的方法是将内容或目录放在网络服务器的公共(public)文档根目录之外。这将确保即使删除了.htaccess文件或服务器不允许.htaccess覆盖,也不会提供内容。要确定您的文档根目录,您只需回显PHP$_
我的情况:我有一个运行Apache的共享主机帐户,用于个人项目。现在我的一个friend需要一点空间来为他的曲棍球俱乐部建立一个网站。我决定让他在我的帐户上运行它,并给他一个FTP帐户,限制他对public_html/hockey的访问。我的问题:有没有办法限制他的PHP脚本(在他的hockey文件夹中),使他们无法访问hockey文件夹之外的任何文件?我正在寻找一种涉及类似php.ini或.htaccess中的配置的解决方案。请不要回复告诉我他应该尽量不要访问该文件夹之外的任何内容。我正在努力提高安全性,以防止他的代码中有意访问和意外安全漏洞。如果您知道如何在沙盒环境中运行他的内容,
我创建了一个流行的Wordpress插件,但我收到很多提示说它不起作用。在登录到许多用户的WP网站后(在询问管理员密码后),我注意到我无法轻松解决的最后一个问题是mod_security和mod_security2阻止了一些AJAX请求或.htaccess,这导致某些配置出现500错误。那么首先为什么这段代码导致一些服务器返回500错误SecRuleRemoveById300015SecRuleRemoveById300016SecRuleRemoveById300017SecRuleRemoveById950907SecRuleRemoveById950005SecRuleRemov