前端面试整理笔记一

1、常见的web安全及防御原理javascript

1.sql注入原理html

就是经过把sql命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。java

防御,总的来讲有如下几点:web

一、永远不要信任用户的输入,要对用户的输入进行校验,能够经过正则表达式,或限制长度,对单引号双“--”进行转换等。正则表达式

二、永远不要使用动态拼装sql,可使用参数化的sql或者直接使用存储过程进行数据查询存取。sql

三、永远不要使用管理员权限进行数据库链接,为每一个应用使用单独的权限有限的数据库链接。数据库

四、不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息。浏览器

 

2. XSS原理及防范安全

    XSS(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。好比:攻击者在qq中发送一个看似安全的连接,骗取用户点击以后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户本来觉得信任的站点。服务器

 3.XSS防范方法

首先代码里对用户输入的地方和变量都须要仔细检查长度和对“<”,">" ,";"," ' "等字符作过滤;其次任何内容写到页面以前都必须加以encode,避免不当心把html tag弄出来。至少能够堵住超过一半的XSS攻击。

首先,避免直接在cookie中泄漏用户隐私,例如email、密码等等。

其次,经过使用cookie和系统ip绑定来下降cookie泄漏后的危险。这样攻击者获得的cookie没有实际价值,不可能拿来重放。

若是网站不须要在浏览器端对cookie进行操做,能够在set-cookie末尾加上HttpOnly来防止JavaScript代码直接获取cookie 。

尽可能采用post而非get提交表单

4.XSS与CSRF有什么区别吗?

XSS是获取信息,不须要提早知道其余用户页面的代码和数据包。CSRF是代替用户完成指定的动做,须要知道其余用户页面的代码和数据包。

要完成一次CSRF攻击,受害者必须依次完成两个步骤:

登陆受信任网站A,并在本地生成cookie。

在不登出A的状况下,访问危险网站B。


5.CSRF的防范

服务器端的CSRF方式方法不少样,但总的思想都是一致的,就是在客户端页面增长伪随机数。

相关文章
相关标签/搜索