- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用网络请求更改村庄名称。原始的网络请求是:
http://ts9.travian.com/ajax.php?cmd=changeVillageName
POST /ajax.php?cmd=changeVillageName HTTP/1.1
Host: ts9.travian.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/javascript, text/html, application/xml, text/xml, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
X-Request: JSON
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Referer: http://ts9.travian.com/dorf1.php
Content-Length: 99
Cookie: sess_id=d6785b074b551c8f2bcdc31b7a314f9a; lowRes=0; T3E=jICvjEyjMlS3JAfAnZu%2FEA%3D%3D%3A6RoqZtSC3svl61Vi9hEBmO7xA0%2FJdL6xESd3tTKjvKM2UqoAiTf93aHbstIjJ0a7Yvf4c7vtp05Z4Kqm8Sg8OsJjM6waVRalUUKZWnU0fKHLqbvUcksUYSz2TKqMjhIgx8c6A9KRKyIvfdPOX7FffQ%3D%3D%3AP9Wn2BVlp9KeMlaOfyuG3ulblfv4%2BGhsswiIWeG5BNA%3D;travian_toggle=hero%3Aexpanded%2Cinfobox%3Aexpanded%2Cvillagelist%3Acollapsed; highlightsToggle=true
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
cmd=changeVillageName&name=SWAAGGERs%20village&did=39020&ajaxToken=6697441f78fefc90ca84c0e3891661cb
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 08 Dec 2014 10:31:54 GMT
Content-Type: application/json; charset=UTF-8;
Transfer-Encoding: chunked
Connection: keep-alive
响应是:
{
ajaxToken: null,
response: {"error":true,"errorMsg":"Token invalid","data":{"html":""}}
}
我发布请求的方式:
POST @ http://ts9.travian.com/ajax.php?cmd=changeVillageName
Data @ cmd=changeVillageName&name=ogdgpvqxf479&did=39020&ajaxToken=da56a3af2fc3cb6b629a091533d09e4e
REF @ http://ts9.travian.com/dorf1.php
我是否遗漏了什么? (如果我需要发布更多数据,如 cookie,我可以在需要时这样做)
ajaxToken 存储在 javascript 的 window.ajaxToken 中,但随每个请求一起发送。 ajaxtoken 设置在顶部的每个页面中
<script type="text/javascript">
window.ajaxToken = '4bf2392b506df3ebb1f4873a66f766d6';
</script>
编辑:我已经在我的浏览器中欺骗了这些网络请求使用的 cookie,并且我能够那样做......仍然没有弄清楚是什么原因造成的。
最佳答案
登录 session 通过 cookie 保存。因此,如果没有 cookie,服务器将无法判断将 HTTP 请求与哪个帐户相关联以及该用户是否已通过身份验证以更改给定村庄的名称。如果网络服务器不这样做,您就可以更改服务器上任何村庄的名称。
window.ajaxToken JavaScript 变量(这不是任何标准,只是这个特定网站所做的)用于防止 cross site request forgery .它也被称为 CSRF token 。
Web 服务器使用 CSRF token 为页面提供服务,但也在服务器上存储该 CSRF token 并将其与当前登录 session 相关联。每当服务器收到 AJAX 请求时,它都会使用 cookie 识别登录 session ,并通过检查 CSRF token 验证该请求是否来自它所服务的页面。
如果他们不这样做,其他网站就有可能在您不知情的情况下更改您的村庄名称。
假设我想通过将您的村庄命名为“我使用机器人和宏”来禁止您。在我的网站 getbannedfromtravian.com 上,我有这样的 JavaScript:
$.post({
url: "http://ts9.travian.com/ajax.php?cmd=changeVillageName",
data: {
cmd=changeVillageName,
did=12345,
name="I use bots and macros"
}
});
当您访问我的网站时,此 JavaScript 将运行。您的浏览器会提供与 ts9.travian.com 关联的 cookie,包括您的登录 session 和请求。
但是,因为我没有提供服务器与登录 session 关联并在每个页面中提供服务的 CSRF token ,它知道此请求不是来自它提供的页面并且应该忽略它,让您的村庄名称保持不变。
关于c# - Travian 更改村庄名称给 'Invalid Token' 与 webrequests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27357425/
我正在尝试向 iOS 应用商店提交更新。我要从 Buzztouch 应用程序转到 Sprite Kit 应用程序。我能够存档 Xcode 项目并提交它。该应用程序的状态为“上传已收到”,但大约一分钟后
我收到了这个奇怪的警告。我不确定是什么原因造成的。 .dia文件扩展名应该表示核心有向图图形文件。我没有添加,应用程序几乎没有用户界面。 最佳答案 我对这个答案并不满意,但我认为它可以帮助人们,直到找
下面用作 Uri 参数的程序集限定字符串在 XAML 中工作,但在代码中使用时会出现错误。 我尝试了各种 UriKind,结果都相同。我该如何解决这个问题? [Test] public void La
我正在开发一个 Angular 应用程序,目的是将其部署到移动设备和 Web 浏览器上。设置表单样式以显示无效输入时,我应该定位 Angular“ng-invalid”类还是 HTML5“:inval
我有一个在 Google App Engine 上运行的应用程序,它是 Android 应用程序的后端。它基本上是 Android 应用程序和在我自己的服务器上运行的 MySQL 数据库之间的桥梁。
我的代码是这样的: func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle,
I need to encrypt using Python with the A256GCM algorithm, and getting back a JWT that I need to
无法成功编译webpack并生成bundle.js文件。据我了解,我的 src_dir 和 dist_dir 变量能够指向正确的路径,但在尝试编译时我仍然始终收到两个错误之一。 配置对象无效。 Web
因此,当我在 postgres 上运行 regexp_matches 时收到一条错误消息,并且无法弄清楚如何通过它。它似乎在 regex101 等 reg_exp 测试站点上运行良好,但不幸的是在实际
这些是我正在使用的导入: import com.novell.ldap.*; import java.io.UnsupportedEncodingException; 我正在尝试进行一个非常简单的密码
在记录器函数的简写情况下,Pylint 提示 Invalid constant name "myprint"(invalid-name)。 # import from utils import get
我试图创建一个HTML输入标签,该标签仅接受以2种格式之一输入的数字,并拒绝所有其他输入。 我只想接受以下格式的数字,包括破折号: 1234-12 和 1234-12-12 注意:不是日期,而是合法的
我一直在尝试使用 Bootstrap 的表单样式处理 AngularJS 的电子邮件验证,并遇到了这个 CSS block 。 input:focus:required:invalid, textar
我正在编写一个程序,以确保我了解如何在 C 中正确实现单向链表。我目前正在哈佛的 CS50 类(class)中学习,并且使用本教程,因为 CS50 人员不解释链接详细列出数据结构:https://ww
此问题与询问同一消息的另一个问题不重复,但在另一个上下文中。这个问题的上下文只是关于上传截图图像和获取消息。 今天,我在将图片上传到 App Store Connect 时收到一条新消息: Inval
我的代码似乎运行良好,但当我滑动以删除 UITableView 中的一行时,应用程序崩溃并显示以下内容: 错误 LittleToDoApp[70390:4116002] *** Terminating
当我尝试发送语音消息时,总是收到无效的url错误。我正在使用Whisper将音频转换为文本,但由于某种原因,我似乎无法将文件传递给Whisper。当我在Java脚本中使用它而不是在TypeScrip中
我正在尝试在 flutter 上对 http 客户端进行单元测试。在模拟 http 和我的存储库类之后: void main() { MockHttpCLient mockHttpCLient;
我正在使用 pandoc 作为一个库,相关的代码片段是: module Lib ( latexDirToTex, latexToTxt ) where import qualified
我正在开发一个(相对简单的)Rails应用程序。我正在使用Devise gem处理用户 session 。每当我导航到localhost:3000/users/sign_in时,我都会看到Devise
我是一名优秀的程序员,十分优秀!