问题标签 [esapi]
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.
javascript - ColdFusion 编码问题 - encodeForHTML 和 encodeForJavascript 删除反斜杠
为了防止跨站点脚本(XSS),我使用了 OWASP 推荐的ESAPI(企业安全 API)。 esapi.jar 文件已包含在 ColdFusion 的早期版本中,但在 CF10 中,您现在可以轻松调用其中一些有用的函数:encodeForJavascript()
、encodeForHTML()
、encodeForURL()
、encodeForCSS()
和encodeForHTMLAttribute()
.
我遇到了麻烦encodeForJavascript()
,我失去了反斜杠......
我第一次打电话encodeForJavaScript()
是因为我们在 JavaScript 上下文中。
然后我打电话encodeURIComponent()
以确保正确构建 URL。
一切正常,但在结果页面上我丢失了反斜杠\
。我在这里想念什么?
(是的,我知道我还必须保护我的输出位置#url.name#
。对于这个实验,我没有这样做,因为我需要查看源以查看字符串是否与原始字符串匹配。)
**更新** - 我正在运行 ColdFusion 10,并应用了所有最新的补丁。问题似乎出在encodeForJavaScript()
.
也失败了JSStringFormat()
。这样做表明两者都缺少反斜杠......
java - 封装或不封装 ESAPI
我们有几个 webapps 需要 ESAPI java 库提供的功能。我和我的同事处于两难境地,是直接使用 ESAPI 从而创建对 ESAPI 的直接依赖,还是创建一个抽象对 ESAPI 的调用的接口。
通过抽象对库的依赖,我们可以灵活地在需要时轻松切换到其他选项。除此之外,我们还可以定义自己的界面,这更有可能满足我们的需求。
但是当我们在接口中识别出我们需要的方法时,它看起来越来越像 ESAPI 本身中使用的接口。ESAPI 本身就是一个门面,具有 Validator、Encryptor 和其他的可配置实现。
ESAPI 是否足够成熟以至于直接依赖它是安全的,还是坚持使用这个包装器是否明智?
java - 针对用户提供的 url 属性的 ESAPI XSS 预防
我的一个 REST API 需要一个属性“url”,它需要一个 URL 作为用户的输入。我正在使用 ESAPI 来防止 XSS 攻击。问题是用户提供的 URL 类似于
http://example.com/alpha?abc=def&phil=key%3dbdj
来自 ESAPI 编码器的 cannonicalize 方法在此处抛出入侵异常,声称输入具有混合编码,因为它是 url 编码的,并且片段 '&phi' 被视为 HTML 编码,因此是异常。
我在清理我的一个应用程序 url 时遇到了类似的问题,其中第二个查询参数以“pa”或“pi”开头,并通过 HTML 解码转换为 delta 或 pi 字符。请在此处参考我之前的 Stackoverflow 问题
现在问题是,由于整个 URL 是作为用户输入的,我不能简单地解析查询参数并单独清理它们,因为可以创建恶意输入并结合两个查询参数并单独清理它们不会起作用案子。
示例:<scr 是第一个查询参数值和 ipt>alert(0) 的最后一部分;或者某些东西作为下一个查询参数控制上下文的第一部分。
有没有人遇到过类似的问题?我真的很想知道你们实施了哪些解决方案。感谢您的任何指示。
编辑:来自“avgvstvs”的以下答案不会引发入侵异常(谢谢!!)。但是,cannonicalize 方法现在更改了原始输入字符串。ESAPI 将查询参数的 &phi 视为一些 html 编码的字符并将其替换为 '?' 字符。类似于我之前的问题,此处链接。不同之处在于这是我的应用程序的 URL,而这是用户输入。在这里维护白名单是我唯一的选择吗?
esapi - 找不到 esapi-3.1.0.jar
从以下链接下载了一本书
https://www.owasp.org/images/7/79/ESAPI_Book.pdf
本书依赖esapi-3.10版本。但我找不到 esapi-3.1.0.jar。在哪里可以找到相应的罐子。
谢谢你。〜夏姆
java - Esapi 并使用 replaceAll 处理空白字符串
我已经看到有关使用String.replaceAll("","");
作为从 Java 中的字符串中消除“空白”或“非打印字符”的某种方法的参考。正如答案将证明的那样,这是错误的。
value = value.replaceAll("", "");
eclipse - 'esapi' 在 Websphere 7 中未定义
一直在关注 esapi4java-core-2.0-install-guide.pdf for Eclipse 并将其应用到 Websphere 7.5 环境中。
第 1 步 - 我在库中添加了 esapi.jar(项目 > 属性 > Java 构建路径 > 库选项卡 > 添加外部 JAR)。
第 2 步 - 我将 esapi 和验证 .properties 文件放在我机器上的一个文件夹中。
第 3 步 - 我选择为所有运行配置添加 esapi(Windows > Preferences > Java > Installed JREs)。我突出显示了 WebSphere Application Server v7.0 JRE,选择了“编辑”并将 esapi.jar 添加到该库列表中。在同一个表单上,我将 -Dorg.owasp.esapi.resources="/path/to/.esapi" 参数添加到 Default VM Arguments 提示符,即我的 esapi 和验证 .properties 文件所在的路径。
这是 JSP 页面上失败的代码:
执行这段代码后,我收到错误:'ESAPI' 未定义(发生在 var isValidURL 语句上)。
我错过了什么?
java - 如何为 Java ESAPI 添加标签白名单
我们正在向我们的网站添加富文本编辑,包括添加 youtube 视频的功能。但另一方面,我们希望保持安全并防止 XSS/HTML 注入。以前我们使用以下代码来转义数据:
现在我们必须添加某种允许标签的白名单。有没有办法实现这个功能?
oracle - 如何将 ESAPI 与 Oracle HTTP 服务器或 IBM HTTP 服务器集成
有没有办法将ESAPI的 C 语言特定插件与 Oracle HTTP 或 IBM HTTP 服务器集成。我的意思是我们可以将 C-Lang 特定代码与 Oracle HTTP 服务器集成以实现安全性。它可以是 Java 特定的插件。期望是实现 Sanitize 我需要遵循哪些步骤?
提前致谢,
巴努。
rest - 电子邮件地址“blabla@example.com”的 ESAPI
我看到了一些相关的问题。但我没有得到我想要的东西。对不起,如果这是一个愚蠢的要求。希望我有这个特定的查询:
所以我正在尝试用 MySQL 数据库制作一个 ReST API。我正在尝试从一个基本上提取用户有效电子邮件地址的表中读取数据。输出将显示在 HTML 页面上。
输出:temp = blabla@gmail.com
我怎样才能避免这种情况发生?并获取 blabla@email.com
我认为这里的行为符合预期。但我只是想知道是否有其他方法可以解决其他条件处理(if..else)另外,如果有人能指出 ESAPI 的一些设计选择背后的原因怎么办。读起来应该很有趣。
java - 如何清理输入
当用户在 Tomcat Webapp 中提交表单时,我愿意使用“OWASP ESAPI for Java”来清理用户输入。
我以前org.apache.commons.lang.StringEscapeUtils
是这样使用的:
我不再知道这是否足以“合理地”保护 webapp ...
我想知道我应该编写哪些代码行来使用 OWASP ESAPI 来清理 Tomcat webapp 用户输入。
您能否举一个示例,其中一个或多个 ESAPI“过滤器”(转义?编码?...)将应用于字符串以对其进行清理?
后端 RDBMS 是 PostgreSQL。
Tomcat 服务器既可以在 Linux 服务器上运行,也可以在 Windows 服务器上运行。
感谢你并致以真诚的问候。