xss攻击和sql注入问题

xss攻击:通俗来讲就是在浏览网页时恶意的css、js等代码来窃取你的信息或者恶意的弹窗等

比如说:alert弹窗或者如果想要通过script脚本获得当前页面的cookie值,通常会用到document.cookie等

防范措施就是 过滤,HttpOnly可以保证同一cookie不被滥用,转义比如涉及<script>标签中的半角符<>转成&gt &lt 过滤掉script标签但是可以script标签里面继续包含script标签或者img标签也可以执行js代码等等限制它的字符串长度

  • 首先是过滤。对诸如<script>、<img>、<a>等标签进行过滤。
  • 其次是编码。像一些常见的符号,如<>在输入的时候要对其进行转换编码,这样做浏览器是不会对该标签进行解释执行的,同时也不影响显示效果。
  • 最后是限制。通过以上的案例我们不难发现xss攻击要能达成往往需要较长的字符串,因此对于一些可以预期的输入可以通过限制长度强制截断来进行防御

 

sql注入就是利用sql语句的规则来非法的获取更改后端数据库数据

比如 你想查你选了哪些课 数据库中肯定有个mysql数据库,select 字段 from 表名 where 条件  

一般来讲条件是根据前端用户输入信息来形成的 比如用户只要id=1的数据 正确做法就是在input输入框输个1 后端形成了 where id=1 但如果 前端内容变成 xxx or 1=1 就相当于把所有信息都取出来了,

对前端input输入框添加钩子函数来验证什么 限制用户行为 ,后端再对用户发来信息进行过滤 对于敏感信息多次过滤 比如 delete什么的对单引号和双"-"进行转换等字符

提交的参数中有"exec、insert、select、delete、from、update、count、user、xp_cmdshell、add、net、Asc"等用于SQL注入的常用字符时,立即停止执行ASP并给出警告信息或转向出错页面

第二件事是给用户密码加密啦。比如用MD5加密。MD5是没有反向算法,不能解密的。人家即使知道经加密后存在数据库里的像乱码一样的密码,他也没办法知道原始密码了。

 

上一篇:nuxt中v-html指令警告(warning ‘v-html‘ directive can lead to XSS attack vue/no-v-html)


下一篇:防止xss