繁体   English   中英

为什么ASP.NET比ASP Classic更安全?

[英]Why are ASP.NET more secure than ASP Classic?

我已经阅读了几个ASP.NET比ASP Classic更安全的地方。 但从未见过为什么会有任何实际的争论。

以标准登录系统为例。 用户通过表单向服务器发送用户名和密码。 在两种语言中都以相同的方式完成。 在两种语言中,其余的都是在服务器上完成的。 为什么选择ASP.NET over ASP Classic?

正如ScottRFrost所述, 请求验证可以防止XSS作为默认值。 就个人而言,我更愿意关闭它并开发一个应用程序来使用输出消毒内容(例如HTML编码输出到网页,或正确编码和转义JavaScript中使用的输出)。 此方法不限制用户输入,因此它不会以请求验证的方式限制应用程序功能。 例如,它允许将HTML输入到一个字段中,该字段将显示在网页上而不是由浏览器解释(想象一下HTML开发者论坛不允许发布HTML)。 如果在ASP.NET中使用此方法,则可以根据页面的变量输出使用与标准ASP开发非常相似的方法。

为了回答您的观点,在身份验证(验证用户名/密码组合)期间,Classic ASP和ASP.NET之间没有太大区别。 ASP.NET提供了一些可以放入页面的用户控件,还提供了Membership Provider模型,但实际上你必须为这两种方式实现逻辑。

ASP.NET还具有作为标准包含的授权标准,因此可以从web.config文件中的设置限制对整个应用程序或某些URL路径的访问。 这可以防止开发人员忘记每页包含授权检查。 但是,仍然需要在ASP.NET中手动处理任何更细粒度的访问检查。

ASP.NET还提供了无法通过Web服务器读取的专用文件夹,例如/ App_Data。 这为存储不应通过HTTP直接读取的应用程序相关文件提供了方便的位置。 您可以在Classic ASP中手动执行此操作,但是您需要将此目录存储在Web根目录之外,或者您需要设置本地文件夹权限,以便IIS用户无法读取这些文件。

总而言之,我不会说ASP.NET本质上比Classic ASP更安全,除了新手开发人员不太可能在ASP.NET中创建一个XSS易受攻击的网站。

ASP.NET默认包含“ 请求验证”等功能,可以限制某些常见的脚本攻击。 您可以在经典ASP中自己完成,但在.NET中它是默认的。

可能存在安全问题。 但我担心一件事。 它是关于SQL注入的。 Asp.net提供了参数化查询和HTML编码解码技术。 有关更多信息,请单击链接ASP.net安全性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM