快乐人L 发表于 2022-3-26 10:28:37

PHP安全 [安全编码]

目录
数据库安全(SQL注入)
命令执行 
XSS 
资源泄露 
本地文件包含
任意文件上传 
文件系统安全
源码:
如果攻击者恶意构造如下:
user_submitted_name="../etc"user_submitted_filename="passwd" 因为源码是直接拼接的,所以上述执行会直接把/etc/passwd文件执行删除操作。(属于越权行为)
安全编码:

[*]不允许用户有拼接权限。
[*]对用户输入进行完整的校验。
校验源码(白名单):
ctype_alnum():做字母和数字字符检测
( : ?         非捕获分组,仅仅匹配
( ?  ! \. )   匹配非.的内容
分析:

[*]../etc 在上述正则会导致die,即 ..开头的文件不允许
[*]/符号会导致die。
[*]根据操作系统的不同,存在着各种各样需要注意的文件,包括联系到系统的设备( /dev/或者COM1)、配置文件(/ect/文件和.ini文件)、常用的存储区域(/home/ 或者My Documents )等等。由于此原因,建立一个策略禁止所有权限而只开放明确允许的通常更容易些。
数据库安全(SQL注入)

恶意输入:
尽量避免直接的数据库查询语句的拼接,无论数据库种类。
a%' exec master..xp_cmdshell 'net user test testpass /ADD'  错误输出:
尽量避免直接输出原本的数据库错误信息,而自行构造。
页: [1]
查看完整版本: PHP安全 [安全编码]