【发布时间】:2012-02-22 18:43:30
【问题描述】:
作为默认 ASP.Net 控件集的一部分的控件是否始终使用 viewstate 或 controlstate?
即如果我将下面的代码放到一个全新的 Web 表单上,我的 SQL 字符串是否处于未加密的控制状态?
<asp:SqlDataSource ID="mobileData" runat="server"
DataSourceMode="DataReader"
SelectCommand="SELECT * from ma.bob WHERE Vendor IS NOT NULL"
/>
我知道如何加密 viewstate 和 controlstate,但我觉得这个常见用例可能非常不安全,这让我感到很疯狂。确实可以通过修改 controlstate 来执行 SQL 注入攻击吗?
我认为大多数人都会想到为敏感应用程序加密 controlstate,但实际上,如果我的假设是正确的——那么它应该总是这样做——并且 Visual Studio 应该默认启用它?
我是否正确地考虑了这一点,还是我有错误的一端?
【问题讨论】:
-
为什么该字符串会进入 ViewState 或 ControlState?它是静态的。
标签: asp.net security sql-injection viewstate