一个简易授权demo


在页面中引用,比如: 

<?php
echo'1<br>';
echo'1<br>';
echo'1<br>';
echo'1<br>';
echo'1<br>';
include ('shouquan.php');
echo'2<br>';
echo'3<br>';
echo'4<br>';
echo'5<br>';

?>

授权操作

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

include ('key.php');
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://localhost/api/api.php');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 0);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
$post_data = array(
"domain" => "$url",
"key" => "$key"
);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);

//echo "$data";
if ($data=='true') {
echo '域名验证成功!<br>';
} else {
exit();
}

key文件,用于存储激活码、授权码

<?php
$key='123456';//输入激活码
?>

api文件,接受客户端post请求并返回相应数据

<?php
$api=$_POST['key'];
$domain=$_POST['domain'];


$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "selectdata";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}

$rs = mysqli_query($conn,"SELECT * FROM data WHERE domain='$domain'");
$aa=mysqli_fetch_array($rs);


if ($api==$aa[1]) {
echo'true';
} else {
echo'false';
}

将程序重要函数/操作/行为添加到shouquan.php中并对其加密混淆,以达到防破解的目的

嗯...暂时就想到这么多。



2018.12.1

客户端代码 

<?php
//获取不带端口号的域名前缀
$servername = trim($_SERVER['SERVER_NAME']);
//获取服务端授权文件校验
$verifyurl = file_get_contents('http://www.toyean.com/zb_users/upload/copyright.php?domain='.$servername);
if(!empty($verifyurl)){
echo "已授权!"; //授权成功
}else{
die("未授权!"); //授权失败
}
?>

服务端代码 

<?php

//获取域名
$domain = $_GET['domain'];
//授权域名列表
$Array = array('127.0.0.1','localhost');
//校验结果
echo in_array($domain, $Array) ? 'yes' : '';
?>


 

 



感谢@慕若曦的指点


 

声明:阿硕的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 一个简易授权demo


Carpe Diem and Do what I like