如何从浏览器控制台停止数据发布
How to stop from data post from browser console?
在过去的几个月里,我一直在思考这个问题。最近,我开始使用完整的 JS Build 前端,其中表单使用 Ajax
发布。
我有一个疑问,如何在服务器端识别数据来自哪里。它是来自实际form
事件还是来自browser console
.?
我尝试过的:
创建双向握手:在发布form
之前,应用程序将联系服务器,服务器将在cookie内发送token
,该将与form
帖子一起发回。但是,即使我们通过浏览器控制台发布,该cookie
也会携带令牌。所以,失败了。
:但是,如果有人从浏览器控制台发布数据,他肯定会寻找隐藏字段。基本上,他会复制我的AJAX
,以相同的方式发送相同的请求。失败!!
我无法弄清楚这部分。谁能帮忙?
提前谢谢。
互联网
编程的规则#1:永远不要相信来自客户端的任何内容。曾。
互联网编程的规则#2:永远不要相信来自客户端的任何东西。曾。
互联网编程的规则#3:你不能让客户端值得信赖。
我知道第一条规则重复了两次,但这是值得的。
根本没有办法做你想做的事情。
希望通过 AJAX 请求或 POST 请求将数据发送到您的服务器的人可以轻松执行以下任一操作:
- 使用浏览器工具或代理修改表单,并强制输入他想要的任何信息。
- 通过 fiddler2 等工具捕获整个事务,并更改值并重新发送它们。 无需浏览器。
- 修改从您的网站运行的代码以发送(或允许(他希望发送的任何数据。
- 使用像
Curl
这样的工具来伪造浏览器并发送他想要的任何信息。
在您的服务器上,根本无法知道该信息来自何处。
从安全的角度来看,你根本不能相信任何东西 - 永远。
验证凭据,为用户提供登录令牌(通常是cookie(,然后仍然对客户端发送给您的所有内容持怀疑态度。 如果存在不应更改或更新的内容,请确保后端不允许更改或更新它。
我们的应用程序中有大量代码,如下所示:
if (user.HasPermission("MayUpdateFirstName") {
record.FirstName = FormData.FirstName
}
这样,如果传入了 FirstName,并且用户无法修改它,则不会对其进行修改。
相关文章:
- 将数据传递到自定义控制台
- 如何使用谷歌地理编码将地址转换为坐标后控制台日志数据
- 如果从浏览器控制台提交,Knockoutjs不会保存数据
- 如何在控制台.log中打印 JSON 数据
- 将数据从 Web 浏览器控制台导出到剪贴板或文本文件
- 为什么我的 ajax 调用不将数据存储在数据库中?没有 PHP 或控制台错误
- 使用浏览器控制台发送 ajax 数据
- 从控制台显示的数据属性值,但不使用脚本显示
- 在我的visual studio应用程序页面中显示正在运行的控制台程序数据输出
- 从输入中获取数据,并在提交按钮上单击控制台日志记录数据
- 如何在控制台的多行中更新数据
- 如何从浏览器控制台停止数据发布
- 如何在Ui中显示数据,如果我在控制台获得数据在angular js
- 流星-不填充{{each}},即使控制台说数据在那里
- 显示数组数据,如控制台样式["1","2","3"]
- 我有这个数据读取到我的控制台.我想显示"exampleHeader"和“;exampleBody&q
- 如何将mysql数据管道传输到浏览器窗口,而不是Nodejs中的控制台
- 如何设置控制台数据
- 将node.js服务器接收到的数据打印到控制台
- 对本地 JSON 文件发出 XMLHttpRequest 以控制台日志数据