Javascript-如何防止脚本注入攻击

问题描述 投票:0回答:1

简介

[该主题成为StackOverflow和其他许多技术论坛上许多问题和答案的祸根;但是,其中大多数都是特定于特定条件的,甚至更糟:通过dev-tools-consoledev-tools-elements甚至address-bar进行脚本注入预防中的“全面”安全性据说是“不可能”进行保护的。该问题旨在解决这些问题,并随着技术的改进而成为当前和历史的参考-或发现新的/更好的方法来解决浏览器安全性问题-特别与script-injection攻击有关。

关注

[有很多方法可以“实时”提取或操作信息;特别是,无论SSL / TLS为何,截取从输入中收集的信息-传输到服务器都非常容易。

截取示例

看看here不管它有多“粗略”,都可以轻松地使用该原理来制作模板,只需将其复制并粘贴到浏览器控制台中的eval()中即可执行各种令人讨厌的事情,例如:

  • console.log()通过XHR
  • 截获的传输中信息
  • 操作POST-数据,更改用户引用,例如UUIDs
  • 通过检查JS代码GETcookies,向目标服务器替代项headers(&post)请求信息转发(中继或获取)信息>
  • 这种攻击“似乎”对未经训练的人来说是微不足道的,但是当涉及到高度动态的界面时,它很快就变成了[[nighmare

-等待被利用。我们都知道

“您不可以信任前端”

,并且服务器应负责安全性;但是-我们心爱的访客的隐私/安全又如何呢?许多人使用JavaScript创建“快速应用程序”,要么都不知道(或不关心)后端安全性。
保证前端和后端的安全对普通攻击者来说是可怕的,而且减轻了服务器的负载(在许多情况下,这是很容易的。)>

努力

Google和Facebook都采用了一些缓解这些问题的方法,并且它们可以工作;因此,这不是“不可能的”,但是它们非常针对各自的平台,要实现,需要使用整个框架以及大量工作-仅覆盖基础知识。

[其中一些保护机制可能看起来多么“丑陋”;目标是在某种程度上

help(缓解/预防)安全问题,这使攻击者很难。现在大家都知道:“您不能阻止黑客,只能阻止他们的努力”

工具和要求

目标是拥有一套简单的工具(功能):-这些必须使用普通(香草)javascript-它们的总和不应超过几行代码(最多200行)-必须为immutable,以防止攻击者“重新捕获”-这些不得与任何(流行的)JS框架发生冲突,例如React,Angular等-不一定要“漂亮”,但至少应可读,欢迎“单线”-跨浏览器兼容,至少达到良好的百分位数

简介本主题一直是StackOverflow和其他许多技术论坛上许多问题和答案的祸根;但是,其中大多数都是特定于特定条件的,甚至更糟:“总体” ...

javascript google-chrome-devtools firebug websecurity
1个回答
0
投票
运行时反思/自省

这是解决其中一些问题的一种方法,我不认为这是(最好的)“最佳”方法,这是一种尝试。如果可以拦截某些“可解释的”函数和方法,并查看“调用”(每次调用)是否是从产生该调用的服务器进行的,那么这可能很有用,因为我们可以看到调用是否来自“稀薄的空气”(开发工具)。

© www.soinside.com 2019 - 2024. All rights reserved.