javascript – 如何在允许用户上传自己的JS时处理恶意JS

我们有一个网站,允许用户上传自己的 JavaScript,加载网站的页面.问题是用户是否添加了恶意脚本(例如,键盘记录器).任何人都可以提出如何处理这个问题的想法吗? 最佳答案 哇,你正在创建一个攻击者的游乐场!如果你让用户(攻击者)上传他自己的JavaScript,那么他可以做很多恶意事情.

我不同意那些正在讨论扫描JavaScript病毒的人.防病毒软件在软件中搜索已知的错误签名,主要针对影响了大量人员的恶意软件.请记住:反病毒软件检查的每个签名都是对已知威胁进行大量工时分析的结果.它没有检测到零日威胁!当您让用户编写自己的JavaScript时,他不仅限于这些已知的错误签名.他可以做任何他想做的事情,反病毒软件无法判断发生的事情是恶意的还是业务逻辑的意图.

如果您允许用户(=攻击者)上传他自己的JavaScript,让我们开始说明一些问题:

>除非您将httpOnly放在所有cookie上,否则攻击者可以阅读它们.例如,他可能能够劫持会话.
>攻击者可以读取键盘和鼠标事件.例如,他可能能够窃取用户密码.
>您如何防止跨站点请求伪造?通过让攻击者上传他自己的JavaScript,他可以绕过你的保护并执行他想要的任何动作.例如,他可以创建DoS攻击,使每个用户上传他选择的内容.然后,每当有人来到您的服务器时,加载页面需要花费很长时间,因为在发生任何事情之前,需要下载太多的JavaScript.
>攻击者可以读取任何其他人的DOM并将其发送到任何地方.如果DOM中存在任何私有或敏感内容,攻击者就会拥有它.
>攻击者可以使用警报或其他各种方法执行任何其他用户.

如果你愿意,你可以玩猫捉老鼠游戏:你提出了一种方法来防止我上面提到的问题,然后我告诉你攻击者如何绕过它,然后你改变你的解决方案,然后我改变我的攻击,等等.您可能能够阻止某些事情,但您将无法阻止所有攻击.安全很难!

底线:不要这样做!

点赞