摘要:在https请求http的时候,同时考虑到前端的安全性,做的一个小操作
问题:
1、跨域(域名不一致,https到http不允许)
2、ip地址的安全性
3、接口的安全性
服务端PHP
header("Content-Security-Policy: upgrade-insecure-requests");
header('Access-Control-Allow-Origin:*');
或者
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:GET,POST,PUT,DELETE,PATCH,OPTIONS');
header('Access-Control-Allow-Headers:Content-Type, X-ELEME-USERID, X-Eleme-RequestID, X-Shard,X-Shard, X-Eleme-RequestID,X-Adminid,X-Token');
增加IP白名单
做二次的接口分发,及通过CURL将接口服务器信息发送到实际操作数据库的服务器
以下是获取php外部地址的小方法:
function get_ip(){
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}