一、在地址栏直接输入目标地址跳转。如在未登录的情况下直接访问需要登录才能显示的目标页面
办法:采用session会话技术,在目标页面开启session验证,session中没有存储对应的用户信息代表用户未登录。用户登录时存储相应信息到session中。
二、跨站脚本攻击(Cross Site Scripting,XSS)
是一种经常出现在Web应用程序中的计算安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的.
攻击者利用网站漏洞把恶意得脚本代码(通常包括HTML代码和客户端JS脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。
如http://localhost/test.php?name=
或者是在某些页面比如留言版中插入无限弹窗,跳转页面什么的
办法:
1.strip_tags 删除string中 所有html标签
2.htmlspecialchars 只对"<",">","&","'","""字符进行转义(实体字符)
3.htmllentities, 对所有html进行转义
反射型XSS
存储型XSS
DOM Based XSS
三、SQL注入攻击
恶意用户通过万能用户名,或者万能密码改变sql结构达到登录网站目的
万能密码admin' or '5'='5
万能用户名 admin' union select * from admin;-- PS:联合查询需要两张表拥有相同的字段数量与字段名
办法:不采取mysql链接方式,使用pdo连接数据库,用预处理查询,这也是pdo安全系数比mysql高的表现之一
或者查询出来再分别验证用户名与密码
四、跨网站请求伪造攻击(CSRF-防盗链)
CSRF Cross Site Request Forgeries
攻击者伪造目标用户的HTTP请求,然后此请求发送到有CSRF漏洞的网站,网站执行此请求后,引发跨站请求伪造攻击
总结攻击:1.伪造链接,引诱用户点击,或者让用户在不知情的情况下访问
2.伪造表单,引诱用户提交。表单可以是隐藏的,用图片或链接的形式伪装
办法:使用页面唯一验证,创建token验证
五、文件上传漏洞
恶意用户上传一些有攻击性的文件。
办法:限制上传的文件类型,大小等,减少对网站的攻击
六、表单重复提交
用户提交表单后通过刷新提交成功页面不断重复提交重复数据。
办法:将表单提交页面提交时间存入SESSION,然后添加成功后删除SESSION,第二次提交再比对就不行了
七、HTTP请求欺骗攻击
模拟http的post等请求向目标站点发送有害数据进行攻击,使用技术sockt,curl都可以
办法:在添加页面设置token在session
八、PHP安全配置=>php.ini
1.控制php脚本能访问的目录
使用open_basedir选项能够控制php脚本只能访问指定的目录,能够避免php脚本访问不该访问的文件,一定程度上限制了phpshell的危害,一般可以设置为只能访问网站目录
2.关闭危险函数
disable_functions = phpinfo,system等等,还有一些文件和目录的操作如readdir,delete
3.错误信息控制
display_errors = Off
如显示警告以上的信息:error_reporting_E_WARNING & E_ERROR