PHP代码审计
目录
1 .概要2
2 .输入验证和输出显示2
1 .命令注入3
2 .跨网站订阅3
3 .文件中包含4
4 .代码注入4
5. SQL注入4
6. XPath注入4
7. HTTP响应分割5
8 .档案管理5
9 .文件上传5
10 .变量覆盖5
11 .动态函数6
3 .对话安全6
1. HTTPOnly设置6
2 .域设置6
3 .路径设置6
4. cookies持续时间6
5 .安全设置6
6. session固定7
7. CSRF 7
4 .加密7
1 .以明文形式保存密码7
2 .密码弱加密7
3 .密码保存在攻击者可以访问的文件7中
5 .认证和许可证7
1 .用户身份验证7
1 .函数或文件的未验证调用7
3 .密码硬编码8
6 .随机函数8
1. rand () 8
2. mt_srand (和mt_rand ) 8
7 .特殊字符和多字节编码8
1 .多字节编码8
8. PHP风险函数8
1 .缓冲区溢出8
2 .删除2. session_destroy ()文件中的漏洞9
3.unset (-Zend _ hash _ del _ key _ or _ index漏洞9
9 .信息泄露10
1. phpinfo 10
10. PHP环境10
1. open_basedir设置10
2. allow_url_fopen设置10
3. allow_url_include设置10
4. safe_mode_exec_dir设置10
5. magic_quote_gpc设定10
6. register_globals设置11
7. safe_mode设置11
8. session_use_trans_sid设置11
9. display_errors设置11
10. expose_php设置11
1 .概要
代码审查是一项系统地检查APP应用程序源代码的任务。 其目的是找到并修复
运用程序开发阶段存在的一些漏洞和程序逻辑错误,避免程序漏洞被非法利用给企业带来不必要的
必要的风险。
代码审查不是简单的代码检查。 审阅代码的原因是为了确保代码可以安全地访问信息和资源
由于受到充分保护,熟悉整个APP应用程序的业务流程对于管理潜在的风险非常重要。 审阅者
可以使用以下问题采访开发人员并收集APP信息:
APP应用程序包含什么类型的敏感信息? APP应用程序如何保护信息?
APP应用程序是内部提供还是外部提供? 谁用,他们是可靠的用户吗?
APP应用程序部署在哪里?
APP对企业的重要性?
最好的方法是编写checklist,让开发者填写。 Checklist直观地反映了APP应用程序
的信息和开发者进行的编码的安全性。 必须涵盖可能存在严重漏洞的模块,如数据验证、主体等
身份验证、会话管理、授权、加密、错误处理、日志、安全配置、网络体系结构。
2 .输入验证和输出显示
漏洞的原因大多是没有对输入数据进行安全验证和输出数据的安全处理
严密的数据验证方法如下。
1 .准确匹配数据
2 .接受白名单数据
3 .拒绝黑名单数据
4 .将与黑名单匹配的数据编码
PHP中用户可以输入的变量列表如下。
$ _服务器
$_GET
$_POST
$_COOKIE
$_REQUEST
$ _文件
$_ENV
$_HTTP_COOKIE_VARS
$_HTTP_ENV_VARS
$_HTT