Web安全学习笔记

之前做项目写的那叫一个随意。。由于都是小项目和练手demo,完全没有管过安全相关方面的知识。。回头重新总结一下吧

目前比较常见的安全问题大概有这几种:

  • XSS Cross Site Script 跨站脚本攻击
  • CSRF Cross-site request forgery 跨站请求伪造
  • SQL注入
  • DDOS Distributed Denial of Service 分布式拒绝服务

比较少见的,还是了解一下的:

  • iframe风险
  • 上传漏洞
  • 点击劫持
  • 钓鱼

一个个来说吧~

XSS

简单来说就是页面执行了不被期望解析的代码,恶意web用户将代码植入到提供给其它用户使用的页面。比如评论内容为死循环的script代码段,get参数为js代码等。
跨站脚本攻击的危害:窃取cookie、放蠕虫、网站钓鱼 ...
跨站脚本攻击的分类主要有:存储型XSS、反射型XSS、DOM型XSS

解决办法就是把所有前段输出数据转义,保证不被解析。
原则:宁死也不让数据变成可执行的代码,不信任任何用户的数据,严格区分数据和代码。

保存的数据库的时候,for PHPer,

addslashes,stripcslashes这两个函数可以为预定义',",\打上(去掉)'\'。
htmlentities或者htmlspecialchars会将预定义的字符转化为html实体,也就是让浏览器输出html代码。

js中,html实体应直接加入innerHTML里面不会被解析,会被显示成代码,如果是html字符的话就需要加入textContent里面,可以用这个来写过滤函数。

// 防止中文乱码,但我好像没事
htmlentities($str, ENT_COMPAT , "UTF-8");

原代码


                    
                    

你可能感兴趣的:(Web安全学习笔记)