Referer
Referer能告诉我们当前请求从哪个连接过来,值就是哪个页面的URL。
Post和get方法
Get方法被认为有下列风险
URL中指定的参数经由referer泄露
URL中指定的参数残留在访问日志(access log)中
当所发请求符合下面任一条件时就应该使用post方法,都不符合时才使用get方法
请求中包含数据更新等副作用时
发送敏感信息时
发送的信息量很多时
Hidden参数:客户端状态的记录。
无状态的http认证
Basic认证
第一次请求需要被认证的网页时,需要发送账户和密码。以后每一次请求都会带账户和密码。换言之basic认证是无状态的。
Html认证
Digest认证
认证与授权
认证是指,通过一些方法手段来确认操作者确实是其本人。
授权是指,授权已经通过认证的用户一些权限。
Cookie回话管理
Cookie能让浏览器记忆少量数据,但保存应用程序的数据几乎不会用cookie:
Cookie能保存的值的数量和字符串长度有限
Cookie的值能被用户自己看到或更改,所以不适用于存储敏感信息
Cookie的属性
Domain:原则上不设置cookie的domain属性
Cookie的安全属性
Secure
Httponly
3.2被动攻击与同源策略
主动攻击:攻击者直接攻击web服务器。SQL注入攻击即是主动攻击的代表例子。
被动攻击:攻击者并不直接攻击服务器,而是针对网站的用户设下陷阱,利用调入陷阱的用户来攻击应用程序。
正规网站中设置陷阱的手法通常有下列四种
非法获取ftp等服务器的密码后篡改网站内容
通过攻击web服务器的安全隐患来篡改网站内容
通过sql注入攻击来篡改网站内容
在社交网络这类用户能够自己发布内容的网站上,利用跨站脚本漏洞实施攻击
浏览器的安全功能
沙盒
只有在用户确认了程序的发行方并且允许允许的情况下,程序才能被运行
提供限制程序权限的沙盒环境
沙盒限制了以下功能
禁止访问本地文件
禁止使用打印机等资源(可以显示页面)
限制网络访问
同源策略
同源策略是禁止JavaScript进行跨站访问的安全策略,他也时浏览器的沙盒环境所提供的一项制约。
JavaScript能够读取iframe内部数据
同源条件
Url的主机一只
Scheme(协议一致)
端口号一致
Script元素
Css
From元素的action属性
第一章 web应用的各种安全隐患
4.1 web应用的功能与安全隐患的对应关系
隐患和对应关系
调用SQL语句(sql注入)
调用shell命令(OS命令注入)
输出邮件头和正文(邮件头注入)
结论
处理过程与输出过程会产生安全隐患
输入过程不会产生安全隐患
输出过程产生的安全隐患名称多数带有注入
4.2输入处理与安全性
输入-处理-输出
字符编码的转换与安全性
输入校验
输入校验的目的
如果未对输入进行校验的话,或许会出现以下现象。
用户在只接受数值的项目中填入了字母或标点符号,导致保存至数据库时发生错误
更新处理时中途发生错误,导致数据库的不一致性
用户填写完很多项目后点击确认按钮时因发生了内部错误而不得不全部重新填写
程序在用户漏填邮箱地址的情况下依然执行发送邮件的处理
输入校验的目的总结
尽早发现输入错误提示用户重新输入,提高了易用性
防止错误处理造成数据不一致等,提高系统的可靠性