本机模拟域名调用接口-WordPress建站论坛-建站-全栈行动派

本机模拟域名调用接口

概要

现在有一个域名:api.qzxdp.cn 我需要调用其域名下的两个接口:https://api.qzxdp.cn/api/auth  和  https://api.qzxdp.cn/api/update 我知道出参结构,但是没有授权参数,希望能绕过授权,直接给我返回成功。则可以通过在本地模拟域名搭建一个站点,最终只要能将接口调用通过即可。

准备

环境:linux服务器+nginx+php 有一个index.php文件内容如下:

<?php
$url = $_SERVER['REQUEST_URI'];

function getRandom($length) {
	$characters = 'abcdefghijklmnopqrstuvwxyz1234567890';
	$randomString = '';
	for ($i = 0; $i < $length; $i++) {
		$index = rand(0, strlen($characters) - 1);
		$randomString .= $characters[$index];
	}
	return $randomString;
}
function generate_randstr($url) {
	$key = strrev(md5($url));
	$num1 = rand(70,99);
	$num1r = strrev(strval($num1));
	$num2 = rand(70,99);
	$num2r = strrev(strval($num2));
	$keystr = substr_replace($key,getRandom(3),$num1-69,0);
	$randstr = getRandom(3).$num1r.getRandom(rand(5,10)).$keystr.getRandom(100-$num2).$num2r;
	return $randstr;
}
header('Content-Type: application/json; charset=UTF-8');



if(strpos($url, '/api/auth') !== false){
	$time = time();
	$token = md5(uniqid(mt_rand(), true) . microtime());
	$randstr = generate_randstr($_POST['url']);
	$sign = md5($randstr.$time.$token.'ok');
    $data = ['error'=>true, 'error_code'=>0, 'msg'=>'', 'time'=>$time, 'token'=>$token, 'randstr'=>$randstr, 'code'=>base64_encode('恭喜您,授权验证成功'), 'v2'=>['product'=>'zibll_theme', 'url'=>$_POST['url'], 'code'=>'', 'email'=>$_POST['email'], 'version'=>$_POST['version'], 'K_V'=>2], 'sign'=>$sign];
    echo json_encode($data);
}
elseif(strpos($url, '/api/update') !== false){
    $version = $_POST['version'];
    $data = ['result'=>false, 'aut_error'=>false, 'msg'=>'暂无更新,您当前的版本已是最新版', 'version'=>$version];
    echo serialize($data);
}

配置host

修改 /etc/hosts  文件添加如下配置

127.0.0.1  api.qzxdp.cn

效果如下 image

使用nginx搭建站点

配置如下:

server {
       listen       443 ssl;
       server_name  api.qzxdp.cn;
       root /u01/tool/wp/nginx/html;
       index index.php  index.html;
       ssl_certificate /u01/tool/wp/nginx/ssl/domain.crt;
       ssl_certificate_key /u01/tool/wp/nginx/ssl/domain_nopass.key;

       location / {
            if (!-e $request_filename){
                rewrite  ^(.*)$  /index.php?$1  last;   break;
            }
        }

        location ~ \.php$ {
            include fastcgi.conf;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }

其中 “root /u01/tool/wp/nginx/html;” 将index.php 放入此目录下,证书就自己生成一个接口,如果不会可以留言我帮大家生成。 配置完成以后,启动nginx,在本机直接调用接口试试效果 image

请登录后发表评论

    qzxdp.cn

    没有回复内容