如何清除跨站脚本中的 ashx url?
例如
,如果有人添加到网址末尾 , 我有一个处理程序
MyPage.ashx?parameter=1¶meter=2
;
MyPage.ashx?parameter=1¶meter=2<script>alert('Test')</script>
javascript 将在客户端执行
是否有办法清除跨站点脚本中的 url?
For example I have a handler MyPage.ashx?parameter=1¶meter=2
if someone added to the end of the url <script>alert('Test')</script>
MyPage.ashx?parameter=1¶meter=2<script>alert('Test')</script>
javascript will be executed on client side
Is there anyway to clean url from cross-site scripting?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
javascript 仅在您输出原始用户输入时才被执行。
如果您的 ashx 需要输出参数,您必须对它们进行适当的编码。假设您要在 ashx 页面中创建 HTML,您需要 HtmlEncode 参数输出之前的值。特定类型有不同的编码方法,如果没有 ashx 脚本的更多详细信息,很难判断需要使用哪种编码方法。
The javascript is only being executed because you are outputting user input raw.
If your ashx needs to output parameters you must encode them suitable. Assuming you are creating HTML in your ashx page you need to HtmlEncode the parameter value before you output it. There are different encoding methods for particular types, it's hard to tell which needs to be used without more details of the ashx script.
检查 ASP.NET 请求验证
除此之外,您永远不应该将未转义或未经验证的渲染请求输入参数返回给客户端。
Check ASP.NET Request Validation
In addition to that you should never render request input parameters unescaped or unvalidated back to the client.