问题标签 [xss]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 捕获 SQL 注入和其他恶意 Web 请求
我正在寻找一种可以检测恶意请求(例如明显的 SQL 注入获取或帖子)并会立即禁止请求者的 IP 地址/添加到黑名单的工具。我知道,在理想的世界中,我们的代码应该能够处理此类请求并相应地处理它们,但是即使站点可以免受此类攻击,这种工具也有很多价值,因为它可能导致节省带宽,防止分析膨胀等。
LAMP/.NET
理想情况下,我正在寻找比技术堆栈更高级别的跨平台 ( ) 解决方案;也许在网络服务器或硬件级别。不过,我不确定这是否存在。
无论哪种方式,我都想听听社区的反馈,以便了解我在实施和方法方面的选择。
python - 使用 Python 清理用户输入
为基于 Python 的 Web 应用程序清理用户输入的最佳方法是什么?是否有一个函数可以删除 HTML 字符和任何其他必要的字符组合以防止XSS或 SQL 注入攻击?
java - 捕获 XSS(跨站点脚本)攻击的最佳正则表达式(在 Java 中)?
Jeff 实际上在Sanitize HTML中对此进行了发布。但他的例子是用 C# 编写的,而我实际上对 Java 版本更感兴趣。有人有更好的Java版本吗?他的示例是否足以直接从 C# 转换为 Java?
[更新] 我对这个问题给予了赏金,因为当我问这个问题时,SO 并不像今天那样受欢迎(*)。和安全有关的事情,越多人看越好!
(*) 其实我觉得还是内测
javascript - 网站之间的通信(使用 Javascript 或?)
这是我的问题 - 我想在两个网站之间进行交流,我正在寻找一个干净的解决方案。当前的解决方案使用 Javascript,但由于(可以理解的)跨站点脚本限制,存在令人讨厌的解决方法。
目前,网站 A使用名为jqModal的jQuery插件打开一个包含网站 B的模式窗口。网站 B做了一些工作并将一些结果返回到网站 A。要返回该信息,我们必须解决跨站点脚本限制 -网站 B创建一个 iframe,该 iframe 引用网站 A上的页面并包含包含要返回的信息的“片段标识符”。网站 A轮询 iframe以检测返回的信息。这是一种常见的技术,但它很hacky。
有诸如CrossSite 之类的变体,我也许可以使用从网站 B到网站 A的 HTTP POST,但我试图避免页面刷新。
有没有人有其他选择?
编辑:我想避免在网站 B上保存状态。
java - 如何在 tomcat/java webapps 中配置 HttpOnly cookie?
在阅读了 Jeff 关于保护您的 Cookie:HttpOnly的博文后。我想在我的 Web 应用程序中实现 HttpOnly cookie。
你如何告诉 tomcat 只使用 http cookie 进行会话?
asp.net - 您究竟如何在 ASP.NET 中配置 httpOnlyCookies?
受这篇 CodingHorror 文章“保护您的 Cookie:HttpOnly ”的启发
你如何设置这个属性?在网络配置的某个地方?
xss - 何时最好清理用户输入?
用户等于不可信。永远不要相信不可信用户的输入。我明白了。但是,我想知道清理输入的最佳时间是什么时候。例如,您是否盲目地存储用户输入,然后在访问/使用时对其进行清理,或者您是否立即清理输入然后存储此“清理”版本?除了这些之外,也许还有一些我没有想到的其他方法。我更倾向于第一种方法,因为任何来自用户输入的数据仍然必须谨慎处理,“清理”的数据可能仍然在不知不觉中或意外危险。无论哪种方式,人们认为哪种方法最好,出于什么原因?
php - 你如何在 PHP 中设置使用 HttpOnly cookie
如何在我的PHP apps
as中设置 cookie HttpOnly cookies
?
javascript - 访问受限 URI 被拒绝代码:1012
您如何在 FireFox 3 上解决这个 Ajax 跨站点脚本问题?
php - 最佳实践:合法的跨站脚本
虽然跨站点脚本通常被认为是负面的,但我遇到了几种必要的情况。
我最近在一个非常有限的内容管理系统的范围内工作。我需要在页面中包含数据库代码,但托管服务器没有任何可用的东西。我在自己的服务器上设置了几个简单的脚本,最初认为我可以使用 AJAX 将脚本的内容直接导入到 CMS 的模板中(从而保留动态图像、菜单项、CSS 等)。我错了。
由于XMLHttpRequest
对象的限制,不可能从不同的域中获取内容。所以我想到了iFrame——尽管我不喜欢框架,但我认为我可以创建一个与内容的宽度和高度相匹配的框架,这样它就会显得原生。再一次,我被跨站点脚本“保护”阻止了。虽然我确实可以将远程文件加载到iFrame中,但我无法执行 JavaScript 在主机页面或加载页面内修改其大小。
在这种特殊情况下,我无法将子域指向我的服务器。 我也无法在 CMS 服务器上创建可以代理服务器内容的脚本,所以我最后的想法是使用远程 JavaScript。
远程 JavaScript 工作。当用户禁用 JavaScript 时,它会中断,这是一个缺点;但它有效。我在使用远程 JavaScript 时遇到的“问题”是我必须使用 JS 函数document.write()
来输出任何内容。任何不是 JS 的输出都会导致脚本错误。除了document.write()
为每一行使用之外,您还必须确保内容被转义 - 否则您最终会遇到更多脚本错误。
我的解决方案如下:
我的脚本收到一个 GET 参数(“页面”),然后查找文件({$page}.php
),并将内容读入变量。但是,我不得不使用笨拙的缓冲技术来实际执行包含的脚本(用于数据库交互等),然后剥离所有换行符 ( \n
) 的最终内容,然后转义所有必需的字符。最终结果是我的原始脚本(输出 JavaScript)访问了我服务器上看似“标准”的脚本,并将它们的标准输出转换为 JavaScript,以便在 CMS 模板中显示。
虽然这个解决方案有效,但似乎有更好的方法来完成同样的事情。使跨站点脚本专门用于包含来自完全不同域的内容的最佳方法是什么?