- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在帮助开发的产品基本上是这样工作的:
<script>
来 self 们的服务器。<script>
收集页面的文本内容并通过 POST 请求将其发送到我们的服务器(跨域,使用 <form>
内部的 <iframe>
)。<script>
在页面上再次收集和发布文本内容。问题是这个系统似乎天生就不安全。理论上,任何人都可以欺骗将页面内容发送到我们的服务器的 HTTP POST 请求(包括 referer header ,因此我们不能只检查它)。这可能包括任何文本内容,然后我们将使用这些内容为该页面生成相关内容链接。
确保此安全的主要困难在于我们的 JavaScript 是公开可见的。我们不能使用任何类型的私钥或其他神秘标识符或模式,因为这不是 secret 。
理想情况下,我们需要一种方法来验证与特定网页对应的 POST 请求是否真实。我们不能只是抓取网页并将内容与已发布的内容进行比较,因为让 JavaScript 提交内容的目的是它可能在登录系统后面。
有什么想法吗?我希望我已经很好地解释了这个问题。提前感谢您的任何建议。
最佳答案
这没有确凿的证据。然而,在大枪不存在的地方,主要的烦恼可能存在。黑客喜欢挑战,但他们更喜欢容易的目标。足够烦人以至于他们放弃。
Google 和其他公司通过广告词有效地做到了这一点。创建一个 api token 并让他们发送。对使用您的脚本的站点进行“验证”过程,要求此脚本的注册人允许在使用脚本之前对他们的站点进行分析。然后,您可以收集有关有问题的服务器的所有信息,如果服务器配置文件与记录的配置文件不匹配,则可以请求。
获取有关浏览器和客户端的所有信息,并为其创建配置文件。如果有任何可能是浏览器欺骗,请删除请求。如果配置文件重复但 cookie 消失,请忽略输入。如果您在短时间内从 token 收到多个请求(即黑客尝试固有的快速页面刷新),请忽略该请求。
然后更进一步,ping 实际域以验证它是否存在并且是授权域。即使页面在登录后,域仍会响应。这本身不会阻止黑客,但它是在服务器端完成的,因此是隐藏的。
此外,您还可以考虑分析页面的内容。如果专注于厨房用具的网站开始发回成人约会内容,请发出警告。
最后,当收到您已描述为错误请求的错误请求时,根据您认为正确的数据(该页面的 24 小时旧版本)从该页面的良好请求发送 JSONP ETC。)。不要告诉黑客你知道他们在那里。表现得好像一切都很好。他们需要很长时间才能弄清楚!
这些想法都不能满足您问题的确切需求,但希望它能激发您的一些潜伏和创造性思维。
关于javascript - 如何验证/保护/验证基于 JavaScript 的 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561999/
我有一个 html 格式的表单: 我需要得到 JavaScript在value input 字段执行,但只能通过表单的 submit .原因是页面是一个模板所以我不控制它(不能有
我管理的论坛是托管软件,因此我无法访问源代码,我只能向页面添加 JavaScript 来实现我需要完成的任务。 我正在尝试用超链接替换所有页面上某些文本关键字的第一个实例。我还根据国家/地区代码对这些
我正在使用 JS 打开新页面并将 HTML 代码写入其中,但是当我尝试使用 document.write() 在新页面中编写 JS 时功能不起作用。显然,一旦看到 ,主 JS 就会关闭。用于即将打开的
提问不是为了解决问题,提问是为了更好地理解系统 专家!我知道每当你将 javascript 代码输入 javascript 引擎时,它会立即由 javascript 引擎执行。由于没有看过Engi
我在一个文件夹中有两个 javascript 文件。我想将一个变量的 javascript 文件传递到另一个。我应该使用什么程序? 最佳答案 window.postMessage用于跨文档消息。使
我有一个练习,我需要输入两个输入并检查它们是否都等于一个。 如果是 console.log 正则 console.log false 我试过这样的事情: function isPositive(fir
我正在做一个Web应用程序,计划允许其他网站(客户端)在其页面上嵌入以下javascript: 我的网络应用程序位于 http://example.org 。 我不能假设客户端网站的页面有 JQue
目前我正在使用三个外部 JS 文件。 我喜欢将所有三个 JS 文件合而为一。 尽一切可能。我创建 aio.js 并在 aio.js 中 src="https://code.jquery.com/
我有例如像这样的数组: var myArray = []; var item1 = { start: '08:00', end: '09:30' } var item2 = {
所以我正在制作一个 Chrome 扩展,它使用我制作的一些 TamperMonkey 脚本。我想要一个“主”javascript 文件,您可以在其中包含并执行其他脚本。我很擅长使用以下行将其他 jav
我有 A、B html 和 A、B javascript 文件。 并且,如何将 A JavaScript 中使用的全局变量直接移动到 B JavaScript 中? 示例 JavaScript) va
我需要将以下整个代码放入名为 activate.js 的 JavaScript 中。你能告诉我怎么做吗? var int = new int({ seconds: 30, mark
我已经为我的 .net Web 应用程序创建了母版页 EXAMPLE1.Master。他们的 I 将值存储在 JavaScript 变量中。我想在另一个 JS 文件中检索该变量。 示例1.大师:-
是否有任何库可以用来转换这样的代码: function () { var a = 1; } 像这样的代码: function () { var a = 1; } 在我的浏览器中。因为我在 Gi
我收到语法缺失 ) 错误 $(document).ready(function changeText() { var p = document.getElementById('bidp
我正在制作进度条。它有一个标签。我想调整某个脚本完成的标签。在找到可能的解决方案的一些答案后,我想出了以下脚本。第一个启动并按预期工作。然而,第二个却没有。它出什么问题了?代码如下: HTML:
这里有一个很简单的问题,我简单的头脑无法回答:为什么我在外部库中加载时,下面的匿名和onload函数没有运行?我错过了一些非常非常基本的东西。 Library.js 只有一行:console.log(
我知道 javascript 是一种客户端语言,但如果实际代码中嵌入的 javascript 代码以某种方式与在控制台上运行的代码不同,我会尝试找到答案。让我用一个例子来解释它: 我想创建一个像 Mi
我如何将这个内联 javascript 更改为 Unobtrusive JavaScript? 谢谢! 感谢您的回答,但它不起作用。我的代码是: PHP js文件 document.getElem
我正在寻找将简单的 JavaScript 对象“转储”到动态生成的 JavaScript 源代码中的最优雅的方法。 目的:假设我们有 node.js 服务器生成 HTML。我们在服务器端有一个对象x。
我是一名优秀的程序员,十分优秀!