- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于 API 限制,我有几个网站仍在 .NET 3.5 上运行。今年我们最终会将这些站点迁移到最新的 .NET 版本。其中一项渗透测试表明可能存在 XSS 漏洞。有问题的 URL 是:
Location: http://www.foobar.com/basket.aspx/scripts/searchresults.aspx
Method: GET
Vulnerable Parameter: name of an arbitrarily supplied URL parameter
基本上,basket.aspx
之后的任何内容(如 scripts/searchresults.aspx
)都会导致问题。据我所知,Request.PathInfo
将尝试查找路径并最终到达 searchresults.aspx
(如果 .aspx 页面存在)但我所有的 CSS 和脚本都可以' 由于相对路径而被发现。该页面基本上中断了。目前尚不清楚这如何导致 XSS 漏洞。然而,它确实破坏了页面。
我的问题:是否需要 Request.PathInfo
?在我的初步测试中,如果我检查 Request.PathInfo
,我可以确定它可能是一个错误的 URL 请求:
FooBar.Global pageObj = obj;
if (obj.Request.PathInfo.Length > 0)
{
Response.Redirect("~/sitemap.aspx", true); // bad url send to site map
}
最佳答案
Is Request.PathInfo needed?
ASP.NET WebForms 不需要 PathInfo。 It can be helpful for search engine optimization ,但如果您不使用它,请继续并禁用它。您可以添加代码片段,也可以安装 UrlScan并将 AllowDotInPath 选项设置为 0。
How could this cause an XSS vulnerability?
您的页面可能容易受到 Relative Path Overwrite (RPO) 的攻击如果满足所有这些条件,则攻击:
通过将 PathInfo 附加到 URL,攻击者可以使您的页面加载自身作为样式表,因为 ASP.NET 将 Page.aspx/Master.css 解析为 Page.aspx,而不是 Master .css。由于 CSS 的松散(设计)解析规则,攻击者的内容可能被解释为有效的 CSS,这对于允许 CSS 中的 JavaScript 的旧版 Internet Explorer 尤其不利。即使在现代浏览器中,恶意样式表也可以注入(inject)误导其他用户的内容。
I want to use PathInfo. How can I mitigate this vulnerability?
使用绝对路径引用所有 CSS 样式表。例如,您可以调用 ResolveUrl具有应用程序相对路径(以 ~/
开头的虚拟路径)的方法:
<link href='<%= this.ResolveUrl("~/App_Themes/MySite/Master.css") %>' rel="stylesheet" type="text/css" />
警告:不要使用 ResolveClientUrl方法,因为它返回一个相对路径。
关于c# - Request.PathInfo 问题和 XSS 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42211237/
我使用以下代码扫描文件夹中的图像: '; } }; ?> 然后我显示单击图像的更大版本,并添加“alt”属性作为标题: $('#id img').click(f
我不敢问一个奇怪的问题,但我想在 Controller 的处理程序方法中更改 HttpServletRequest 的“pathInfo”。请看下面。 我知道我可以使用 getPathInfo() 获
我正在为一个图片网站构建一个 uploader ,上传的大部分照片都是 1232132_1231231_12.jpg 类型的。当我运行 pathinfo() 时,我得到扩展的空白输出。 这是我的代码
我希望自己实现某种 cms。我看到我可以捕获 Apache 环境变量,称为 PATH_INFO,所以这样我可以在我的网站上创建动态部分(就像 joomla 一样)。 例如: stackoverflow
PHP pathinfo() 函数 定义和用法 pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息。 返回的数组元素如下: [dirname]:返回文件路径中的目录部分 [ba
我正在开发一个小函数来接收一个 url 并根据它所在的位置返回一个相对路径。 如果 url 在查询字符串中包含路径,则 pathinfo返回错误的结果。下面的代码演示了这一点: $p = 'http:
我想了解 System.Web.HttpRequest 的 PathInfo 属性及其设置方式。 为什么在下面的例子中它会是空的? var p = new System.Web.HttpRequest
由于 API 限制,我有几个网站仍在 .NET 3.5 上运行。今年我们最终会将这些站点迁移到最新的 .NET 版本。其中一项渗透测试表明可能存在 XSS 漏洞。有问题的 URL 是: Locatio
我想将另一个 servlet 的输出包含到当前响应中。 我可以打电话 request.getRequestDispatcher("/new/url").include(request, respons
按照 setting_up_environment 中的说明进行操作“IntelliJ 平台 SDK 开发指南”和 checkout_and_build_community : 安装了 IDE 已安装
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
如果我想获取带有 pathinfo 函数的 URL 的扩展名,我会这样做: 令我惊讶的是 Apache 显示了以下通知: Notice: Undefined index: extension in
我正在用 ASP.NET 3.5† 编写一个网站,在这个阶段我的大部分 URL 都使用 PathInfo,如下所示: http://localhost:/Account.aspx/Login 唯一的问
我有点困惑,这是预期的行为吗? Javascript - 示例 01 function convertCanvasToImage() { var tem
这是我的代码 $filename = $_FILES[$file_element_name]['name']; $ext = pathinfo($filename, PATHINFO_EXTENSIO
什么是routes.IgnoreRoute("{resource}.axd/{*pathInfo}") 我在项目中找不到任何 .axd 文件,我可以删除此路由规则吗? 最佳答案 .axd 文件实际上并
我发现 PHP 函数 basename() 以及 pathinfo() 对于多字节 utf-8 名称有一种奇怪的行为。他们删除所有非拉丁字符,直到第一个拉丁字符或标点符号。然而,在那之后,后续的非拉丁
当在已知为 UTF-8 的文件名上使用 PHP 的 pathinfo() 函数时,它不会返回正确的值,除非特殊字符前面有“正常”字符。 例子: pathinfo('aä.pdf')返回: Array
我平时用apache,想试试NGINX。 我已将它安装在我的 ubuntu 开发机器上,并设置和开发了一些不同的框架和站点(codeigniter、symfony、laravel 等)。 我遇到的问题
我注意到 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 每当我们创建 MVC 应用程序时总是会设置。 如果这是强制性的事情,为什么我们不通过 II
我是一名优秀的程序员,十分优秀!