相关疑难解决方法(0)

在客户端清理/重写HTML

我需要显示通过跨域请求加载的外部资源,并确保只显示" 安全 "内容.

可以使用Prototype的String#stripScripts删除脚本块.但处理程序如onclickonerror仍在那里.

是否有任何图书馆至少可以

  • 剥离脚本块,
  • 杀死DOM处理程序,
  • 删除黑名单标签(例如:embedobject).

那里有任何与JavaScript相关的链接和示例吗?

html javascript security html-sanitizing

72
推荐指数
7
解决办法
8万
查看次数

任何人都知道Javascript中的实体库/函数来清理用户输入

你们知道Javascript中的一个可靠的库/函数来清理用户输入吗?

主要用于防止XSS攻击和排序.

如果所述库可以选择允许某些标签等,那将是一个加号.

编辑:我在后端使用node.js.这就是为什么我需要一个javascript库来做这种事情.

人们在这里推荐Google Caja的一部分: 在Node.js /服务器端javascript中预防XSS

但我只是希望得到更多的选择.

javascript xss node.js

12
推荐指数
1
解决办法
6940
查看次数

保护 Express 免受 XSS:对整个传入请求的 HTML 实体进行编码是否足够?

我有一个要防止 XSS 的 Express 应用程序。

我将一些关于 XSS 的页面(包括OWASP的页面)改成了红色,鉴于我的应用程序特性,我决定编写一个中间件,<>"'在我在路由中使用请求参数之前,对 HTML 实体(更准确地说是 XML 实体,包括)进行编码。

我还在连接时刷新会话 cookie,以防止 cookie 被盗。

我如何构建我的应用程序

  • 所有AJAX请求都是POST(所有参数由中间件重写)
  • 我不使用 GET 参数
  • 我使用的路由参数应该是 int 并且当它们不是时我会引发错误。
  • 唯一不是来自用户输入的数据来自 OAuth 个人数据检索,当它们进入我的应用程序时我也会对其进行消毒
  • 在页面加载时执行的客户端 JS 只涉及来自数据库的数据,假设它们在进入数据库时​​由中间件清理。
  • window.location 被安全使用
  • 我还没有使用任何外部客户端 JS 库(如 JQuery 或 FileUpload)——也许我稍后会在代码中添加它们
  • 当用户输入一些东西时,它总是被发送到服务器(通过 AJAX POST),我借此机会发回经过消毒的输入以在 JS 和/或 DOM 中使用它而不是初始输入
  • 我不使用 eval

我的感受

我的结论是,通过这种行为(在外部数据到来时清理它们),我避免了所有存储和反射的 XSS,并且正确使用 windows.location 可以防止我对抗基于 DOM 的 XSS。

这个结论是对的,还是我忘记了什么?我还应该使用一些头盔功能吗?

编辑

我的问题不是什么是最好的 HTML sanitizer 服务器端(即使它是它的一部分),我更想知道我在代码中放置的保护措施是否可以保护我的应用程序免受所有众所周知的 XSS 类型的侵害。特别是我会知道我的中间件是否不是一个坏习惯。

事实上,PHP中的XSS 过滤功能至少没有涵盖基于 DOM 的 XSS 攻击(因为它只涵盖了服务器端的 HTML …

xss sanitize node.js express

5
推荐指数
1
解决办法
4947
查看次数

标签 统计

javascript ×2

node.js ×2

xss ×2

express ×1

html ×1

html-sanitizing ×1

sanitize ×1

security ×1