web安全的漏洞种类

SQL注入:

SQL注入(SQL Injection),是一个常见的发生于应用程序和数据库之间的web安全漏洞,由于在开发过程中的设计不当导致程序中忽略了检查,没有有效的过滤用户的输入,是攻击者可以向服务器提交不正常的访问数据(即恶意的的SQL命令代码),程序在接收后错误的将攻击者的输入作为代码语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者静心构造的恶意代码,从而绕过验证机制和权限检查,达到取得隐藏数据或覆盖关键的参值,甚至执行数据库主机操作系统命令的目的。

应对方案:

1、严格限制web应用的数据库的操作权限,给用户提供仅能满足需求的最低权限,从而最大限度的减少注入攻击对数据库的危害。

2、既爱尼察输入的数据是否具有所要求的数据格式,严格限制变量的类型。

3、对进入数据的特殊字符(‘ “ \ <> & *)进行转义处理(或编码转换)

4、不要直接拼接SQL语句,所有的查询语句建议使用数据库提供的参数化查询接口,使用参数化的语句而不是将用户输入的变量嵌入SQL语句中。

5、在应用发布之前建议使用专业的SQL注入检测工具进行检测,及时修补被检测出的SQL注入漏洞。

6、避免网站打印SQL错误信息,比如类型错误、字段不匹配等。

XSS跨站脚本攻击:

跨站脚本漏洞(Cross-site scripting , xss),是一种常见的web安全漏洞,由于web应用未对用户提交的数据做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是”>”,”<”),并将未经转义的恶意代码输出到第三方用户的浏览器解释执行,从而导致XSS漏洞。攻击成功后,攻击者可以得到更高的权限、私密网页内容、会话和cookie等内容。

应对方案:

1、针对请求参数以及用户可控数据进行防御,对输出进行编码处理。

2、在服务端对每一个输入进行合法性验证,只允许输入常见符号,字母以及数字。

3、对Cookie添加HttpOnly标识。

CSRF跨站请求伪造:

跨站请求伪造(Cross-site request forgery , CSRF),是一种常见的web安全漏洞,由于在web请求中重要操作的所有参数可被猜测到,攻击者可通过一些技术手段欺骗用户的浏览器去访问一个用户曾经认证过的网站,遂使攻击者可冒用用户的身份,进行恶意操作。

应对方案:

1、在表单中添加一个随机的数字或字母验证码,通过强制用户和应用进行交互,来有效地遏制CSRF攻击。

2、如果检查发现是非正常页面提交的请求(根据Referer进行判断),则极有可能是CSRF攻击。

3、在请求的参数里增加一个随机的token参数,且不可被猜测。

4、敏感的操作应该使用POST,而不是GET,以form表单的形式提交,可以避免token泄露。

越权访问:

越权访问(Broken Access Control , BAC),是一种常见的web安全漏洞,这类漏洞是指应用在检查授权(Authorization)时存在纰漏,使得攻击者可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的界面。在实际的代码安全审查中,这类漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大。

应对方案:

1、将用户身份标识存在session中并验证,不能吧用

你可能感兴趣的:(web安全,安全,数据库)