,,什么是JavaScript注入攻击-

,,什么是JavaScript注入攻击?

本文将告诉您什么是js注入,并讨论两种防止ASP.NET MVC应用程序受到JavaScript注入攻击的技术。感兴趣的朋友可以参考一下。

Javascript可以作为黑客攻击网站的工具,注入js(javascript)恶意脚本就是手段之一。所以,我们来学习一下如何防范js注入攻击。这里有一个很好的说法分享给你:

什么是 JavaScript 注入攻击?

每当用户输入的内容被接受并重新显示时,网站就容易受到JavaScript注入攻击。让我们研究一个容易受到JavaScript注入攻击的特定应用程序。假设已经创建了一个客户反馈网站。客户可以访问网站并输入关于产品的反馈信息。当客户提交反馈时,反馈信息会重新显示在反馈页面上。

客户反馈网站是一个简单的网站。不幸的是,这个网站容易受到JavaScript注入攻击。

假设您在客户反馈表中输入了以下文本:

scriptalert("Boo!")/脚本

该文本表示显示警告消息框的JavaScript脚本。有人把这个脚本提交到客户反馈表后,消息Boo!将来任何人访问客户反馈网站时都会显示的攻击。你也可能认为别人不会通过JavaScript注入攻击来破坏它。

现在,您对JavaScript注入攻击的第一反应可能是忽略它。你可能认为JavaScript注入攻击无非是一种无害的攻击。不幸的是,黑客会通过在网站中注入JavaScript来造成破坏。您可以使用JavaScript注入攻击来执行跨站点脚本(XSS)攻击。在跨站脚本攻击中,用户的机密信息可能被窃取并发送到另一个网站。

例如,黑客可以使用JavaScript注入攻击从其他用户的浏览器中窃取Cookies值。如果敏感信息(如密码、信用卡账号或社会安全号码)保存在浏览器Cookies中,那么黑客可以使用JavaScript注入攻击来窃取这些信息。或者,如果用户在页面的表单字段中输入敏感信息,页面受到JavaScript攻击,那么黑客可以使用注入的JavaScript获取表单数据,并发送到另一个网站。

请高度重视。认真对待JavaScript注入攻击,保护用户的机密信息。在接下来的两部分中,我们将讨论两种防止ASP.NET MVC应用程序受到JavaScript注入攻击的技术。

方法 1:视图中的HTML编码

防止JavaScript注入攻击的一个简单方法是,当数据再次显示在视图中时,用HTML对任何网站用户输入的数据进行编码。

例如:%=html . encode(feedback . message)%

用HTML编码一个字符串是什么意思?使用HTML编码的字符串时,危险字符(如和)将被HTML实体(如lt;和gt;因此,当使用HTML编码字符串scriptalert("Boo!)/script,会转换成lt;scriptgt。alert("Boo!")lt;/scriptgt。当浏览器解析编码字符串时,不再执行JavaScript脚本。相反,显示无害的页面。

方法 2:HTML编码,然后写入数据库

除了在视图中显示数据时使用HTML编码数据之外,还可以在将数据提交到数据库之前使用HTML编码数据。第二种方法是清单4中的控制器。

比如:

公共操作结果创建(字符串消息)

{

//添加反馈

var new Feedback=new Feedback();

新反馈。消息=服务器。HtmlEncode(消息);

新反馈。EntryDate=日期时间。现在;

db。feedbacks . InsertOnSubmit(new feedback);

db。submit changes();

//重定向

return RedirectToAction(" Index ");

}

请注意,在提交到数据库之前,Message的值在Create()操作中是HTML编码的。当消息重新显示在视图中时,消息由HTML编码,因此不会执行注入到消息中的JavaScript。

总结

通常,人们更喜欢本教程中讨论的第一种方法,而不是第二种方法。第二种方法的问题是HTML编码的数据最终会保留在数据库中。换句话说,数据库中的数据将包含奇怪的字符。这有什么坏处?如果需要以网页以外的形式显示数据库数据,就会遇到问题。例如,您不能轻松地在Windows窗体应用程序中显示数据。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: