3

我尝试使用带有此 CSS 属性的数据 URI:

background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA9JREFUeNpiYGBg8AUIMAAAUgBOUWVeTwAAAABJRU5ErkJggg==");

在本地它工作正常。但是,当我调试该文件时,chrome 中似乎丢失了。如果我尝试导航到它,我会得到:从客户端 (:) 检测到潜在危险的 Request.Path 值。

所以很明显,我的应用程序认为这张图片的 URI 很可疑。

我如何让它显示?我尝试使用以下方法放松验证:

<httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" />
<pages validateRequest="false"></pages>

理想情况下,我不想过多地放松规则,只要足以让这些数据 URI 图像加载即可。

4

1 回答 1

1

我敢打赌,由于使用 Base-64 编码的 URI,应用程序认为请求可疑。在 Base-64 中编码恶意 URL 是攻击者通过去除和/或转义 URL 的前端过滤器获取 URL 并隐藏任何阅读代码的人的请求的常用策略。XSS 攻击通常通过将这些 URI 之一存储在数据库中并返回给其他用户来完成。

由于这些天 XSS 的高风险,我会犹豫禁用检查。如果可以,只需使用未编码的 URI。如果你不能,你应该问问自己为什么。如果您试图通过混淆 URI 来增强安全性,请知道这对于攻击者来说非常容易解码。它不是任何形式的加密,只是表示数据的不同方式。

于 2013-04-16T17:47:17.687 回答