防止JavaScript注入

防止JavaScript注入,javascript,vb.net,security,javascript-injection,Javascript,Vb.net,Security,Javascript Injection,在VB.NET Web应用程序中防止javascript注入的最佳方法是什么?有没有办法在pageload事件中禁用javascript 最近,我们的vb.net产品的安全计划的一部分是简单地禁用页面上特定用户无法使用的按钮。然而,我告诉了那个想到打字的人 javascript:alert(document.getElementById(“Button1”).disabled=“”) 在地址栏中,将重新启用该按钮。我相信其他人以前也遇到过类似的问题,所以非常感谢您的帮助。谢谢 更新: 除了验证用

在VB.NET Web应用程序中防止javascript注入的最佳方法是什么?有没有办法在pageload事件中禁用javascript

最近,我们的vb.net产品的安全计划的一部分是简单地禁用页面上特定用户无法使用的按钮。然而,我告诉了那个想到打字的人

javascript:alert(document.getElementById(“Button1”).disabled=“”)

在地址栏中,将重新启用该按钮。我相信其他人以前也遇到过类似的问题,所以非常感谢您的帮助。谢谢

更新:
除了验证用户输入外,如何保护网站不被地址栏所牵制?

< P>最重要的项目是HTML编码用户输入。如果用户输入,它将转换为脚本等

更新:如果需要url/querystring的输入,请使用极端方法验证数据。如果可能,将收到的数据列为白名单。当被列入白名单时,您只确保您认为正确和安全的内容是可行的提交


不信任用户的输入。

< P>最重要的项目是HTML编码用户输入。如果用户输入,它将转换为脚本等

更新:如果需要url/querystring的输入,请使用极端方法验证数据。如果可能,将收到的数据列为白名单。当被列入白名单时,您只确保您认为正确和安全的内容是可行的提交


永远不要信任用户的输入。

始终验证用户输入。

始终验证用户输入。

对应用程序客户端行为所做的任何更改都是肤浅的,根本不安全。你不应该依赖这些。它们很好地阻止了99%的用户,但绕过它们却很容易。您应该在调用操作时检查用户是否具有服务器端操作的正确权限,这样,如果有人决定自己重新启用按钮,他们将无法执行按钮的任何操作。您无法控制某人可以用javascript对页面做什么,因此您永远不应该信任来自客户端的任何东西


对更新的响应:你不能以任何实际的方式,这正是问题所在。一旦网站进入他们的浏览器,所有人都可以免费使用,他们可以尝试一下。这就是为什么您的程序每次都应该在服务器端验证所有内容。

您对应用程序的客户端行为所做的任何更改都是肤浅的,根本不安全。你不应该依赖这些。它们很好地阻止了99%的用户,但绕过它们却很容易。您应该在调用操作时检查用户是否具有服务器端操作的正确权限,这样,如果有人决定自己重新启用按钮,他们将无法执行按钮的任何操作。您无法控制某人可以用javascript对页面做什么,因此您永远不应该信任来自客户端的任何东西


对更新的响应:你不能以任何实际的方式,这正是问题所在。一旦网站进入他们的浏览器,所有人都可以免费使用,他们可以尝试一下。这就是为什么您的程序每次都应该在服务器端验证所有内容。

永远不要信任来自客户端的数据。始终在服务器端验证数据和权限,由您控制。请记住,用户(或任何其他应用程序)可以向您发送他们想要的任何数据。

永远不要信任来自客户端的数据。始终在服务器端验证数据和权限,由您控制。请记住,用户(或任何其他应用程序)可以向您发送他们想要的任何数据。

无论您如何通过javascript锁定界面,您的数据始终可以以某种方式进行操作。有各种各样的工具,例如可以用来修改或重新创建回发/请求的工具


即使你找到了一种方法来锁定东西,如果你的数据对攻击者来说足够重要,那你就是一场军备竞赛。最可行的选择是验证您的输入服务器端。

无论您如何通过javascript锁定界面,您的数据总是可以以某种方式进行操作。有各种各样的工具,例如可以用来修改或重新创建回发/请求的工具


即使你找到了一种方法来锁定东西,如果你的数据对攻击者来说足够重要,那你就是一场军备竞赛。最可行的选择是验证您的输入服务器端。

我们希望在任何时候从按钮调用函数时都不必检查用户权限,但根据我在其他论坛和网站上读到的内容,看起来你是对的。在客户端运行的任何东西都是不可信的——即使假设浏览器可能会被告知不要运行javascript(它不能,还有javascript:URL、firebug、web inspector等),你甚至不能确定它在另一端是真的浏览器;远程请求永远都不可信。我们希望在任何时候从按钮调用函数时都不必检查用户权限,但从我在其他论坛和网站上看到的情况来看,你是对的。客户端上运行的任何东西都是不可信的——即使假定浏览器可能被告知不要运行javascript(它不能,还有javascript:URL、firebug、web inspector等等)你甚至不能确定它在另一端是一个真正的浏览器;远程请求永远不可信。