一:代码审计的定义
通过阅读一些程序的源码去发现潜在的漏洞,比如代码不规范,算法性能不够,代码重用性不强以及其他的缺陷等等
从安全人员的角度来看是:查找代码中是否存在安全问题,推断用户在操作这个代码对应功能的时候,能否跳出开发人员设想的场景和逻辑,去给网站数据或者服务器造成危害。
其次代码审计可以发现一些扫描器难以发现的细节,比如某一个特定的功能场景,只有当你传入特定的参数值的时候,才会触发这个漏洞,这种情况是扫描器很难发现到的。
二:入门准备
1.PHP的编程基础
2.环境搭建能力(由于我们的环境是为了让代码跑起来,并不是真正上线,所以为了方便推荐使用集成工具面板,PHP study
使用PHP study 跑PHP代码
1.点击其他选项菜单—>网站根目录(以www命名)
2.返回点击其他选项菜单—站点域名管理
3.修改网站域名,网站端口,保存设置并生成配置文件。
4.直接设置完上面域名后我们访问自己计算机下“C:\Windows\System32\drivers\etc”找到 host 文件。
用Notepad++或者记事本打开将127.0.0.1 a.com添加进去
保存设置;打开根目录把新建一个mm.php
这样我们就设置好了。
==对于PHPstudy中的数据库MySQL无法打开问题解决=
登录mysql数据库的时候出现 :
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost'(using password: NO)
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost'(using password: YES)
chuli
windows下,以上两个错误的解决方法,以及出现 “发生系统错误 5。拒绝访问”
处理方法; (ps:本人亲自测试)
(1)处理问题
1、在安装mysql的文件目录中找到配置文件my.ini ,然后右击用记事本打开
2、打开后,搜索mysqld关键字
3、找到后,在mysqld下面添加skip-grant-tables,保存退出。
PS:若提示不让保存时,可以将该文件剪切到桌面,更改保存后再复制到mySQL目录下
4、保存后重启PHPstudty中的MySQL
(2) 当用运行win +R cmd
输入 net start mysql 启动mysql服务的时候出, “发生系统错误 5。拒绝访问”
的时候找到命令提示符以管理员身份运行
输入net start mysql 启动mysql服务
输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。
最后在刚才的my.ini这个文件中,把刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了。
三:4.1 代码结构
常见的代码结构有两种:
1.HTML与PHP代码混编,特征就是一个url对应一个PHP页面,例如WordPress的登陆页面http://wordpress.com.test/wp-login.php
2.MVC模式
把代码拆分为Model View Controller三部分结构,模型一般是数据库操作的相关的代码,例如jsp中的javabean用来设计数据的属性和行为,提供获取属性和设置属性的get/set方法
视图通常是HTML代码和其他编程语言的混编结果,可以把一些控制器传递过来的结果,进行一定的拼接
控制器的代码一般是接受数据,做一些数据的校验,权限的判定,调用一些模型的数据库操作代码,把获得到的数据,传递给视图,然后视图把装好的HTML代码发送到客户端MVC的常见表现形式是通常有一个入口文件,这个入口一般是index.php