本文地址:https://021dir.com/news/680.html
Web开发与安全性主题密不可分。确保网站或Web应用程序的安全性是每个开发人员都应该理解的事情。本文主要简要介绍Web领域中的几种常见攻击方法以及Java Web中的预防方法。
项目地址:
XSS是XSS
XSS攻击:跨站点脚本编制(Cross-Site Scripting),为了不与级联样式表(Cascading Style Sheets,简称CSS)的缩写混淆,跨站点脚本编制攻击简称为XSS。 XSS是一个常见的Web安全漏洞,攻击者可以利用该漏洞将恶意代码植入提供给其他用户的页面中。与大多数攻击(通常仅涉及攻击者和受害者)不同,XSS涉及三个方面,即攻击者,客户端和Web应用程序。 XSS的目标是窃取存储在客户端上的cookie或其他网站用来识别客户端身份的其他敏感信息。一旦获得合法用户的信息,攻击者甚至可以假装是与该网站进行交互的合法用户。
XSS通常可以分为两类:
Storage XSS主要出现在用户输入数据以供其他用户查看此页面的地方,包括消息,评论,博客日志和各种形式。该应用程序从数据库查询数据并将其显示在页面上。攻击者在相关页面上输入恶意脚本数据后网站攻击,在浏览此页面时可能会攻击用户。这个过程可以简单地描述为:恶意用户的HTML进入Web程序->输入数据库-> Web程序->用户浏览器。反射XSS的主要方法是将脚本代码添加到URL地址的请求参数中。进入程序后,request参数将直接输出到页面上,并且可能会通过单击类似的恶意链接来攻击用户。
例如,我写了一个网站,攻击者在该网站上发表了一篇文章。内容是这样的。如果我没有处理他的内容并将其直接存储在数据库中,那么下次其他用户访问他的内容时,服务器将从数据库中读取内容,然后响应客户端。浏览器执行此脚本后,将解释cookie。这是典型的存储XSS。
如图所示:
如何防止XSS
答案很简单,不信任用户的任何输入,并且过滤掉输入中的所有特殊字符。只有这样,才能消除大多数XSS攻击。
当前,针对XSS的防御主要有以下几种形式:
过滤特殊字符
避免XSS的方法之一是过滤用户提供的内容(例如先前的脚本标签)。使用HTTP标头指定类型
w.Header()。Set(“ Content-Type”,“ text / javascript”)
这允许浏览器解析javascript代码而不是html输出。 SQL注入是SQL注入
攻击者已成功将恶意SQL查询代码提交给服务器。收到该程序后,该程序错误地执行了作为查询语句一部分的攻击者的输入,这导致原始查询逻辑被更改网站攻击,并且攻击者精心构造了其他执行程序。恶意代码。
示例:'OR'1'='1
这是最常见的SQL注入攻击。当我们输入用户名admin且密码输入为'OR'1'= 1 ='1时,当我们检查用户名和密码是否正确时,原始执行为SELECT * FROM user WHERE username =''and password =' '。拼接参数后,将执行SQL语句SELECT * FROM user WHERE username =''和password =''。或'1'='1',此时创建了1 = 1,因此自然会跳过验证。
如下所示:
但更严重的是,密码输入为'; DROP TABLE用户;-,则SQL命令为SELECT * FROM user WHERE username ='admin'和password =“'';删除表用户;- -'此时,我们直接删除了该表。
如何防止SQL注入
在上图中,Java JDBC中的PreparedStatement用于防止SQL注入。可以看出,所有输入都用作字符串,以避免恶意SQL执行。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。