跨域,数据安全,接口代理

摘要:在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地址的安全性

增加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']);
}
评论