码迷,mamicode.com
首页 > Web开发 > 详细

web 应用常见安全漏洞

时间:2019-02-01 11:32:11      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:jin   tps   后端   数据安全   .com   基于   session   动态插入   权限   

1. SQL 注入

SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。

SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。

原因

当使用外部不可信任的数据作为参数进行数据库的增、删、改、查时,如果未对外部数据进行过滤,就会产生 SQL 注入漏洞。

比如:

name ="外部输入名称";

sql = "select * from users where name=" + name;

上面的 SQL 语句目的是通过用户输入的用户名查找用户信息,因为由于 SQL 语句是直接拼接的,也没有进行过滤,所以,当用户输入 ‘‘or‘1‘=‘1‘ 时,这个语句的功能就是搜索 users 全表的记录。

select * from users where name=‘‘or1=1;
解决方案

具体的解决方案很多,但大部分都是基于一点:不信任任何外部输入。

所以,对任何外部输入都进行过滤,然后再进行数据库的增、删、改、查。

此外,适当的权限控制、不曝露必要的安全信息和日志也有助于预防 SQL 注入漏洞。

参考文章: https://juejin.im/post/5bd5b820e51d456f72531fa8#heading-2

 

2. XSS 攻击

XSS 攻击全称跨站脚本攻击(Cross-Site Scripting),简单的说就是攻击者通过在目标网站上注入恶意脚本并运行,获取用户的敏感信息如 Cookie、SessionID 等,影响网站与用户数据安全。

XSS 攻击更偏向前端的范畴,但后端在保存数据的时候也需要对数据进行安全过滤。

原因

当攻击者通过某种方式向浏览器页面注入了恶意代码,并且浏览器执行了这些代码。

比如:

在一个文章应用中(如微信文章),攻击者在文章编辑后台通过注入 script 标签及 js 代码,后端未加过滤就保存到数据库,前端渲染文章详情的时候也未加过滤,这就会让这段 js代码执行,引起 XSS 攻击。

解决方案

一个基本的思路是渲染前端页面(不管是客户端渲染还是服务器端渲染)或者动态插入 HTML 片段时,任何数据都不可信任,都要先做 HTML 过滤,然后再渲染。

参考文章:https://segmentfault.com/a/1190000016551188#articleHeader7

 

web 应用常见安全漏洞

标签:jin   tps   后端   数据安全   .com   基于   session   动态插入   权限   

原文地址:https://www.cnblogs.com/xingxia/p/web_safe_deal.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!