什么是 JavaScript 注入攻击?方法是什么?
什么是 JavaScript 注入攻击?
网站在接收用户输入并重新显示内容时容易受到 JavaScript 注入攻击。让我们看一下容易受到 JavaScript 注入攻击的特定应用程序。假设您创建了一个客户反馈网站。客户可以访问该网站并输入他们对产品的反馈。当客户提交反馈后,反馈信息会再次出现在反馈页面上。
客户反馈网站是一个简单的网站。不幸的是,该网站很容易受到 JavaScript 注入攻击。
例如,在客户反馈表单中输入以下文本:alert("Boo!")
此文本表示显示警报消息框的 JavaScript 脚本。有人将此脚本提交到客户反馈表单后,将来访问客户反馈网站的任何人都会看到消息 Boo!
。您可能认为其他人不会通过 JavaScript 注入攻击造成严重破坏。
现在,您对 JavaScript 注入攻击的第一反应可能是忽略它。您可能认为 JavaScript 注入攻击是无害的不幸的是,众所周知,黑客会将 JavaScript 注入网站以对其进行破坏。跨站脚本 (XSS) 攻击可以使用 JavaScript 注入攻击来执行。在跨站点脚本攻击中,机密的用户信息可能会被窃取并发送到其他网站。 例如,黑客可以利用JavaScript注入攻击来窃取其他用户浏览器的cookie值。如果敏感信息(例如密码、信用卡帐号或社会安全号码)存储在浏览器 cookie 中,黑客就可以使用 JavaScript 注入攻击来窃取此信息。或者,如果用户在页面上的表单字段中输入敏感信息,并且该页面受到 JavaScript 攻击,则黑客可以使用注入的 JavaScript 来捕获表单数据并将其发送到另一个网站。 请注意。认真对待 JavaScript 注入攻击,保护用户的机密信息。在接下来的两节中,我们将讨论两种保护 ASP.NET MVC 应用程序免受 JavaScript 注入攻击的技术。?例如: 使用HTML对字符串进行编码是什么意思?使用 HTML 对字符串进行编码时,诸如 和 strong> 等危险字符将被诸如 等 HTML 实体替换。因此,当使用 HTML 编码字符串 alert("Boo!") 时,它将被转换为 alert("Boo!")。浏览器在解析编码字符串时不再执行 JavaScript 脚本。相反,显示一个无害的页面 除了在显示器上显示时使用 HTML 对数据进行编码外,您还可以在将数据发送到数据库之前使用 HTML 对数据进行编码。第二种方法与清单 4 中的 controller 的情况完全相同。 示例: 请注意,Message 值是在 (Create 操作中发送到数据库中,当再次在display中显示Message时,该Message是HTML编码的,这样注入到Message中的JavaScript就不会被执行,而数据库中是HTML编码的。也就是说,数据库中的数据会包含奇怪的内容字符,有什么危害?如果需要以网页以外的形式显示数据库数据,就会遇到问题,比如在Windows Forms应用程序中无法方便地显示数据。 补充:像注入一样大神 这是一个技术性的车牌拦截器,别告诉我行不行,但是这个想法就够NB了。当你开车经过某个路口时,车牌被摄像头拍下来,通过OCR(图像识别技术,这就是车牌识别技术)转换成文字,然后DROP数据库,所以车牌就是上图中的。所以SQL注入。方法 2:在写入数据库之前对 HTML 进行编码
public ActionResult Create(string message)
{
// Add feedback
var newFeedback = new Feedback();
newFeedback.Message = Server.HtmlEncode(message);
newFeedback.EntryDate = DateTime.Now;
db.Feedbacks.InsertOnSubmit(newFeedback);
db.SubmitChanges();// Redirect
return RedirectToAction(“Index”);
}
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
