asp.net网页中的安全问题

时间:2011-08-30 22:46:57

标签: c# asp.net security eval spoofing

我正在使用按钮进行回发

 <asp:Button ID="SendButton" Enabled="True" Width="70" runat="server" PostBackUrl='<%# Eval("GroupName", "SendMessage.aspx?GroupName={0}") %>' Text='Send'></asp:Button>

将GroupName发送到SendMessage.aspx页面。但我觉得它容易受到攻击,比如欺骗(如果我错了,请纠正我)。

http://localhost:40092/SurelyK/SendMessage.aspx?GroupName=Acc

Url包含可由攻击者更改的组名 如何防止我的网站遭受此类攻击。请给我一些建议。

2 个答案:

答案 0 :(得分:1)

防范此操作的常用方法是验证服务器端的输入,恶意客户端无法执行任何操作。如果您在服务器上看到一个无效的组名,您只需返回一个这样的页面,而不是对有效的组名执行任何处理。

如果您不希望值发生变化,那么您可以将数据存储在ViewState(已加密)或Session(存储在服务器上,并且是客户无法访问。)

鉴于您有一个提交此信息的按钮,我认为正确的服务器端验证是正确的路径。

同样,如果您尚未通过要求身份验证和授权来保护此页面,那么您当然也应该这样做,这样只有您知道并信任的用户才能访问该页面。

答案 1 :(得分:0)

如何使用Session变量来保存相关数据?会话数据在多个页面中持续存在,直到会话结束。

我从来没有听说过Session变量的回火。