常见的web安全及防护原理
sql 注⼊原理
就是通过把SQL命令插⼊到Web表单递交或输⼊域名或页⾯请求的查询字符串,最终达到欺骗服务器执⾏恶意的SQL命令。
总的来说有以下⼏点:
1. 永远不要信任⽤户的输⼊,要对⽤户的输⼊进⾏校验,可以通过正则表达式,或限制长度,对单引号和双"-"进⾏转换等。
永远不要使⽤动态拼装
SQL
,可以使⽤参数化的
SQL
或者直接使⽤存储过程进⾏数据查询存取。
永远不要使⽤管理员权限的数据库连接,为每个应⽤使⽤单独的权限有限的数据库连接。
不要把机密信息明⽂存放,请加密或者
hash
掉密码和敏感的信息。
XSS原理及防范
XSS原理
Xss(cross-site scripting)攻击指的是攻击者往Web页⾯⾥插⼊恶意 html标签或者javascript代码。⽐如:攻击者在论坛中放⼀个
看似安全的链接,骗取⽤户点击后,窃取cookie中的⽤户私密信息;或者攻击者在论坛中加⼀个恶意表单,
当⽤户提交表单的时候,却把信息传送到攻击者的服务器中,⽽不是⽤户原本以为的信任站点。
XSS防范⽅法
⾸先代码⾥对⽤户输⼊的地⽅和变量都需要仔细检查长度和对”<”,”>”,”;”,”’”等字符做过滤;其次任何内容写到页⾯之前都必须加以
encode,避免不⼩⼼把html tag 弄出来。这⼀个层⾯做好,⾄少可以堵住超过⼀半的XSS 攻击。
⾸先,避免直接在cookie 中泄露⽤户隐私,例如email、密码等等。
其次,通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
如果⽹站不需要再浏览器端对cookie 进⾏操作,可以在Set-Cookie 末尾加上HttpOnly 来防⽌javascript 代码直接获取cookie 。
尽量采⽤POST ⽽⾮GET 提交表单
XSS与CSRF有什么区别吗?
XSS是获取信息,不需要提前知道其他⽤户页⾯的代码和数据包。CSRF是代替⽤户完成指定的动作,需要知道其他⽤户页⾯的代码和数据包。
要完成⼀次CSRF攻击,受害者必须依次完成两个步骤:
登录受信任⽹站A,并在本地⽣成Cookie。
在不登出A的情况下,访问危险⽹站B。
CSRF的防御
原文链接:https://wenku.baidu.com/view/e1a0cf40551252d380eb6294dd88d0d233d43c22.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18335