2011-11-30 78 views
1

我有一个“删除文件”页面上的链接:ASP LinkBut​​ton是否总是触发POST?

<form id="myForm" runat="server"> 
<asp:LinkButton 
    ID="deleteFileLink" 
    runat="server" 
    OnClientClick="javascript:return confirm('Are you sure?');" 
    OnClick="deleteFileLink_Clicked"> 
     (delete) 
</asp:LinkButton> 
</form> 

我想链接到触发POST,从来没有一个GET - 网页(应该)只能是登录的用户访问,但显然我希望GoogleBot等不可能删除文件。

doc强烈建议LinkBut​​ton总是触发一个POST:“该按钮只是将网页发回服务器。”

我看完这个吧?这个删除链接是否有可能被非人类用户使用?

回答

1

任何ASP.NET事件都是通过POST发生的,它被广泛称为PostBack。虽然,这些PostBack可以使用使用JavaScript的__doPostBack方法来模拟,但那是不寻常的。

谷歌机器人不会通过回发链接爬行,这有好的和坏的部分。

如果您正在考虑安全问题,则应在您的会话或某处标识登录用户的登录标志,然后才能实际执行删除代码

+0

该页面只能被登录用户访问,我只是想确认一下。感谢您的放心。 – George

0

简单的解决问题的方法是,如果您希望该页面只能被登录用户访问,则可以在web.config上指定。所以未经认证的用户无法访问该页面。所以不会有任何表演。

+1

这仍然是一个动作而不是一个外观,所以它仍然覆盖了GET永远不会改变服务器状态的规则,即客户端通常可以观察到的状态(即除了日志记录,“最后访问的站点”等),无论身份验证细节。 –

相关问题