- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个网站,人们可以像这样进行投票:
http://mysite.com/vote/25
这将对第 25 项进行投票。我只想将其提供给注册用户,并且仅当他们想要这样做时。现在我知道有人在网站上忙的时候,有人给他们这样的链接:
http://mysite.com/vote/30
那么投票将是他在该项目上的位置,而他不想这样做。
我已阅读 explanation on the OWASP website ,但我不是很明白
这是 CSRF 的一个例子,我该如何防止这种情况。我能想到的最好的事情是在链接中添加一些东西,比如哈希。但是,在所有链接的末尾放置一些东西会很烦人。有没有其他方法可以做到这一点。
另一件事可能有人可以给我一些其他的例子,因为这个网站对我来说似乎相当神游。
最佳答案
这可能成为 CSRF 的一个例子,如果:
<img>
标签):伪造
例如,如果我可以注入(inject) <img>
stackoverflow 的 HTML 源代码中的标签 (我可以,因为 stackoverflow 允许在他的帖子中使用 <img>
标签):
<img src="http://mysite.com/vote/30" />
你只会投票给那个项目 ;-)
通常使用的解决方案是在 URL 中放置一个生命周期有限的 token ,并在获取 URL 时检查此 token 是否仍然有效。
基本思路是:
http://mysite.com/vote/30?token=AZERTYUHQNWGST
有这样的想法:
另外,请注意,用户离开您的网站后 session 保持活跃的时间越短,当他访问不良网站时 session 仍然有效的风险就越小。
但在这里,您必须在安全性和用户友好性之间做出选择...
另一个想法(这不是完全安全,但有助于防止不知道如何强制发布请求的人),将仅在人们投票时接受 POST 请求:
但请注意,这并不完全安全:(可能?)可以通过一些 Javascript 来强制/伪造 POST 请求。
关于php - PHP中的CSRF(Cross-site request forgery)攻击示例和预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2526522/
我有一个网站,人们可以像这样进行投票: http://mysite.com/vote/25 这将对第 25 项进行投票。我只想将其提供给注册用户,并且仅当他们想要这样做时。现在我知道有人在网站上忙的时
我有一个网站,人们可以像这样进行投票: http://mysite.com/vote/25 这将对第 25 项进行投票。我只想将其提供给注册用户,并且仅当他们想要这样做时。现在我知道有人在网站上忙的时
我正在尝试为我的液体主题语言构建一个表单 block 。我的方法基于 this answer 。然而答案似乎不完整。 问题在于防伪和其他一些方法不可用。导致错误: Liquid error: unde
我正在尝试使用 HttpWebRequest 从没有已发布 API 的网站请求 JSON 数据 var cookieJar = new CookieContainer();
我复制了一些在 compojure 1.1.18 和其他旧库中工作的旧代码,但使用最新版本我无法让它工作。 这是我的 minimal example code复制自 the minimal examp
我正在试用 WSO2 身份服务器。 我下载了 5.4.0 版本,并用 wso2server.bat --run 在我的 Windows 机器上启动了服务器。 . 如果我尝试使用默认凭据 (admin/
使用 Spring RestTemplate 时,Fortify 报告中出现“服务器端请求伪造”问题。 我正在使用restTemplate 调用其他一些REST 服务,并从我的 Controller
我有一个 MVC2 应用程序。我正在尝试实现 AntiForgeryToken 帮助程序来防止 CSRF 攻击。 我正在使用 Steve Sanderson 的博客实现这一点:http://blog.
如何使用防伪 token 将数组发布到 Controller 上的操作。 这是我的 Jquery postdata: var postData = { '__RequestVerificationTo
我在正常使用过程中偶尔会遇到此错误,而且我还没有找到一种方法来阻止它而不删除需要 token 的属性,我宁愿不这样做。 我在自己的测试中遇到了这个错误(但似乎是随机的),我从我的日志中知道实际登录的用
在我的部分 View 中,我使用了一些 jquery 代码来提交表单。但是我收到了此错误。所需的防伪表单字段“__RequestVerificationToken”不存在。 如您所见我在我的部分 Vi
在 Mono 上运行的 MVC4 应用程序中出现错误: The anti-forgery cookie token and form field token do not match 在“登录和注册”
我们在 Azure 中托管的网站的错误日志中随机出现“防伪 cookie token 和表单字段 token 不匹配”错误。在意识到我们需要一个静态机器 key 后,我们将其添加到带有validati
我最近升级到最新版本的 facebook SDK,但在登录用户时遇到了问题。我生成的登录链接很好,但是当 facebook 将用户用 token 发送回我的网站时,我收到此错误: fb sdk 错误:
我收到这个错误: The provided anti-forgery token was meant for a different claims-based user than the curren
我想通过 AntiforgeryToken 属性来保护我们的登录操作-我知道为什么会发生该主题的异常,但是我似乎找不到任何好的解决方案。 假设我们有以下情况: 现在是8:00 AM,应用程序用户开始工
我不确定这里发生了什么,但我在我的 cookie 中看到 2 个不同的标记。一个是“XSRF-TOKEN”,另一个是“.AspNetCore.Antiforgery.OnvOIX6Mzn8”,它们具有
我正在尝试像这样使用 php sdk 获取 Facebook 用户 ID $fb = new Facebook\Facebook([ 'app_id' => '11111111111',
我问了这个question不久前,发现 IE 会阻止 iframe 中的跨域 cookie,除非您设置 p3p policy 。到目前为止,p3p 修复在 ie 中运行良好。然而,现在我们在 safa
我是一名优秀的程序员,十分优秀!