PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)

PHP administrator 699℃
如何防范SQL注入

1、使用PDO预处理的方式,也就是一个萝卜一个坑。   (参数化处理)

预处理。将输入的数值,绑定到参数,也就是放进坑里(一个萝卜一个坑,一个参数一个坑),这样输入的内容(外部的内容)就都落到坑里了,在每个坑里处理每个参数,这样就安全了,不会出现SQL注入。

2、使用   htmlspecialchars( )  等函数进行转义。还可以对输入类型进行检测,类型转换。

如何防范CSRF攻击

1、使用token进行验证。可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。(使用GET或POST方法加TOKEN)

2、验证HTTP Referer字段。HTTP Referer字段,记录该HTTP请求的来源。如果来源是外部,那么就拒绝这个请求。(这个方法不安全,可以篡改HTTP Referer字段)

3、一般框架,像ThinkPHP、laravel有表单令牌可以做防范。

4、相关文章:https://www.ibm.com/developerw

如何防范XSS攻击

1、案例:听以前在阿里的同事分享:之前淘宝有一个意见反馈功能,有一天后台人员查看用户提交的意见,打开的某一条意见的瞬间,自动跳转到了另一个网站。但当时幸亏是阿里内网,对外网做了限制,没有造成危害。可见,XSS不可小觑。

2、防范:   最简单的办法,过滤输入。对用户的输入,可以使用htmlspecialchars()等函数进行过滤转义,当然,一些文件上传等,也可能会造成此攻击,要限制上传文件的类型,比如只能传图片等。

DDOS流量攻击:攻击者通过漏洞往网页进行病毒木马的注入,一旦中了招,就成功成为肉鸡。

最常见的攻击其中有一种SYN攻击,它利用tcp协议往服务器发送大量的半连接请求,当半连接队列达到最大值的时候,正常的数据包会被服务器丢弃,最后你网站可能一分钟不到就不不开了。

预防措施:

1、正确设置防火墙
2、禁止对主机的非开放服务的访问
3、限制特定IP地址的访问

4、启用防火墙的防DDoS的属性
5、严格限制对外开放的服务器的向外访问
6、运行端口映射程序祸端口扫描程序,要认真检查特权端口和非特权端口。过滤没必要的服务和端口、定期扫描漏洞进行处理、利用路由器进行防护(路由器死掉后重启一下即可不会影响服务器)或者网路没有瘫痪的情况下,可以查一下攻击来源,然后临时把这些IP过滤一下

 

转载请注明:LuckRay » PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)

喜欢 (0)