2012-07-12 74 views
0

在我们的应用程序中,我们有一个类GlobalPage.cs这个页面继承自Page我们有页面加载覆盖等。它被称为我们的注意力,我们需要添加一些安全性,我们的网页包含文本框(一些是ASP文本框和其他人是HTML输入)。我们想要做的是能够从一个地方全局检查所有这些字段,而不是在每个页面上单独执行。我们如何才能实现,可能使用GlobalPage.cs全局跨站点脚本操作

我将不胜感激任何意见或帮助。

+0

什么样的检查?你如何想象这个工作? – Oded 2012-07-12 18:09:28

+0

我想象一下,说任何人在mypage.aspx中输入somethign,所以它必须通过加载或提交过程来击中GlobalPage.cs,所以我想检查来自这一个地方的某些输入,检查html等标签。并编码它们。 – user1416156 2012-07-12 18:12:38

+1

您可以在基础页面上覆盖'page_load'并检查表单元素是否有效,但这可能会使事情减慢很多。 – Oded 2012-07-12 18:13:36

回答

1

已经有一些内置的保护免受恶意输入。确保你没有关掉它。

<pages validateRequest="true"...> 

传入值本身不是XSS的问题。它会导致出现问题的非转义值。所以,虽然消毒输入有点用处,但不能替代正确的输出编码。

考虑阅读有关ASP.Net中XSS保护的现有信息,如How To: Protect From Injection Attacks in ASP.NET(2.0,请注意,4.0 - ASP.NET Request Validation中有更改)。

+0

你好,是啊,我已经经历了这一切,我们已经启用了一切,但仍然有一些输入,asp.net没有检查,我可以在电子邮件输入这个“[email protected]”onMouseOver = alert( 222)//然后我将鼠标悬停在由它生成的链接上弹出 – user1416156 2012-07-12 18:22:48

+0

@ user1416156,因此您已经在代码中对“输出的正确编码”进行了评论和修复,仍然存在问题?听起来很奇怪。无法验证输入的方式,以便在根据输入值呈现HTML时,HTML呈现代码的所有可能的变体都不会导致XSS错误 - 您必须*正确*转义所有来自用户输入的值,无例外或这个捷径。 – 2012-07-12 18:32:56

+0

基本上我们有asp验证和一些文本框验证输入,但显然有一些缺少验证,所以我想在全局页面中创建一些东西来检查任何javascript或html标记或攻击的输入 – user1416156 2012-07-12 18:37:49