DVWA-impossible难度源代码审计
1 查看源代码
1.1 设置难度
设置难度↓
查看源码↓
获得源码↓
2 代码解析
这里我删除了所有英文注释 写上了自己的注释
注释写法 :"//"加上要注释的内容 ,注释在php中不会被执行,一般来说,会把代码注释写在代码之前。
<?php
/* 在PHP中isset()是一个内置函数,用于检查变量是否已设置且不为NULL。
如果所有参数都已设置且值不为NULL,则返回TRUE。
这里就是检查是否从前端获取了提交上来的 sumit
if 函数用来判断 isset 是true 还是 false。ture 就继续往下执行,
否则不生成任何输出。*/
if( isset( $_POST[ 'Submit' ] ) ) {
/* 按理说checkToken() 不是 PHP 的内置函数,因该加function先定义,才
能在其他地方调用。提示是有报错的,但是行数对不上。所以他给的源代码可能
不完整。
定义应该是这样:function checkToken($user_token, $session_token,
$redirect_url) {if($user_token !== $session_token)
{header("Location: $redirect_url");exit();}}
首先比较 $user_token 和 $session_token 是否相等。如果相等,那么不做
任何操作;否则,我们会使用 header() 函数将用户重定向到指定的页面(通
常是当前页面),以防止 CSRF 攻击的风险。exit() 函数用于终止脚本
的执行,确保用户被重定向到新页面。
这一步操作是为了防CSRF攻击。*/
checkToken( $_REQUEST[ 'user_token' ],
$_SESSION[