C# asp.net网页中的安全问题

C# asp.net网页中的安全问题,c#,asp.net,security,eval,spoofing,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> Url包含攻击者可以更改的组名 如何防止我的网站受到此类攻击。请给我一些建议。防止这种情况的常

我正在使用一个按钮进行回发

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

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

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

如果不希望值发生更改,则可以将数据存储在
视图状态
(已加密)或
会话
(存储在服务器上,客户端无法访问)

不过,考虑到您有一个提交此信息的按钮,我认为正确的服务器端验证是正确的路径


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

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


我从未听说过会话变量回火。

用户是否需要登录才能看到此按钮?或者它是公开可访问的?您是否检查了浏览器的查看源?是的,用户应该登录以查看b按钮。如何将评估结果添加到字符串我想他关心的是“GroupName=Acc”的直接url输入他说“url包含可以被攻击者更改的组名”,这向我表明,他关心的是欺骗团体的名字。验证服务器上的组名可以防止出现这种情况。如果没有“无效”团体,那么这里就没有攻击,所以这也是一个很大的问题。或者,如果他真的关心整个参数的注入,也可以验证。如果浏览器可以做到这一点,那么恶意用户也可以做到,因此需要某种服务器端解决方案。如何将评估结果添加到字符串。我不知道格式。谢谢