php开发的网站安全吗,PHP网站安全开发要点

1、参数化查询

需要操作数据库,务必通过参数传递值,避免SQL语句拼接导致SQL注入漏洞。

2、输入验证

1)对数据进行合法性检查;

2)对数据进行精确匹配;

3)接受白名单的数据;

4)拒绝黑名单的数据;

5)对匹配黑名单的数据进行编码。

在PHP中可由用户输入的变量列表如下:

$_SERVER

$_GET

$_POST

$_COOKIE

$_REQUEST

$_FILES

$_ENV

$_HTTP_COOKIE_VARS

$_HTTP_ENV_VARS

$_HTTP_GET_VARS

$_HTTP_POST_FILES

$_HTTP_POST_VARS

$_HTTP_SERVER_VARS

3、服务端数据校验

对于敏感数据的提交和传递,应该在服务端进行校验,以避免客户端绕过。

4、Cookie安全

PHP中可以使用Setcookie函数设置cookie的httponly属性,以避免潜在的跨站脚本攻击漏洞盗取用户cookie从而冒用身份发起进一步攻击。

5、登陆安全

1)验证方式

应至少验证用户名、密码和验证码,有条件可以验证动态口令、手机动态密码。

2)验证流程

应遵循顺序、模糊的思想。首先验证验证码、其后匹配账号和密码。

3)验证错误信息

不应给出过于具体的错误信息,如用户名错误、密码错误等。

4)基于用户名锁定而非IP

为避免攻击者更换IP绕过锁定,应记录用户登陆行为,并对连续多次登陆错误的用户名进行临时锁定。

6、文件上传安全

文件上传存在被利用上传webshell的风险,应该加强控制。建议采取以下措施:

1)使用白名单方式检测文件后缀;

2)不使用原文件名。上传之后按时间能算法生成文件名;图片文件可使用Getimagesize获取的mime来给予图片类文件拓展名;

3)上传目录脚本文件不可执行;

4)对于图片上传,可以使用PHP GD库重绘图片。

7、URL设计安全

1)为降低被攻击风险,登陆和管理地址应使用不易被猜到的URL;

2)为降低被猜解风险,重置密码链接应一次有效且随机不易被猜解;

8、使用强加密算法加密敏感信息

即使存在SQL注入漏洞,导致密码密文被猜解,攻击者也很难获得对应的明文,从而降低管理后台被攻击的风险;

即使数据库经其他途径泄露,也为暴力猜解增加了不小难度。

9、敏感操作页面置隐藏页面hash

为避免请求伪造漏洞造成非主观的敏感操作,应该在敏感操作页面设置隐藏hash,验证敏感操作的合法性,避免伪造请求。

10、统一的错误处理

网站应使用统一的错误处理机制,屏蔽详细的错误信息,避免造成敏感信息泄露。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值