分享几套防御代码

首先是SSL,js跳转!SSL是站点防御的一个十分好的帮手。

解决了哪些问题:PhP与Nginx实现不了ssl跳转的毛病,运用简洁的JS引用实现ssl跳转。

代码:
<script type="text/javascript">
var targetProtocol = "https:";
if (window.location.protocol != targetProtocol)
 window.location.href = targetProtocol +
  window.location.href.substring(window.location.protocol.length);
</script>

2.PHP实现waf防御效果:
<?php
/*云体检通用漏洞防护补丁v1.1
更新时间:2013-05-25
功能说明:防护XSS,SQL,代码执行,文件包含等多种高危漏洞
*/
$url_arr=array(
'xss'=>"\\=\\+\\/v(?:8|9|\\+|\\/)|\\%0acontent\\-(?:id|location|type|transfer\\-encoding)",
);
$args_arr=array(
'xss'=>"[\\'\\\"\\;\\*\\<\\>].*\\bon[a-zA-Z]{3,15}[\\s\\r\\n\\v\\f]*\\=|\\b(?:expression)\\(|\\<script[\\s\\\\\\/]|\\<\\!\\[cdata\\[|\\b(?:eval|alert|prompt|msgbox)\\s*\\(|url\\((?:\\#|data|javascript)",
'sql'=>"[^\\{\\s]{1}(\\s|\\b)+(?:select\\b|update\\b|insert(?:(\\/\\*.*?\\*\\/)|(\\s)|(\\+))+into\\b).+?(?:from\\b|set\\b)|[^\\{\\s]{1}(\\s|\\b)+(?:create|delete|drop|truncate|rename|desc)(?:(\\/\\*.*?\\*\\/)|(\\s)|(\\+))+(?:table\\b|from\\b|database\\b)|into(?:(\\/\\*.*?\\*\\/)|\\s|\\+)+(?:dump|out)file\\b|\\bsleep\\([\\s]*[\\d]+[\\s]*\\)|benchmark\\(([^\\,]*)\\,([^\\,]*)\\)|(?:declare|set|select)\\b.*@|union\\b.*(?:select|all)\\b|(?:select|update|insert|create|delete|drop|grant|truncate|rename|exec|desc|from|table|database|set|where)\\b.*(charset|ascii|bin|char|uncompress|concat|concat_ws|conv|export_set|hex|instr|left|load_file|locate|mid|sub|substring|oct|reverse|right|unhex)\\(|(?:master\\.\\.sysdatabases|msysaccessobjects|msysqueries|sysmodules|mysql\\.db|sys\\.database_name|information_schema\\.|sysobjects|sp_makewebtask|xp_cmdshell|sp_oamethod|sp_addextendedproc|sp_oacreate|xp_regread|sys\\.dbms_export_extension)",
'other'=>"\\.\\.[\\\\\\/].*\\%00([^0-9a-fA-F]|$)|%00[\\'\\\"\\.]");
$referer=emptyempty($_SERVER['HTTP_REFERER']) ? array() : array($_SERVER['HTTP_REFERER']);
$query_string=emptyempty($_SERVER["QUERY_STRING"]) ? array() : array($_SERVER["QUERY_STRING"]);
check_data($query_string,$url_arr);
check_data($_GET,$args_arr);
check_data($_POST,$args_arr);
check_data($_COOKIE,$args_arr);
check_data($referer,$args_arr);
function W_log($log)
{
$logpath=$_SERVER["DOCUMENT_ROOT"]."/log.txt";
$log_f=fopen($logpath,"a+");
fputs($log_f,$log."\r\n");
    fclose($log_f);
}
function check_data($arr,$v) {
foreach($arr as $key=>$value)
 {
if(!is_array($key))
    { check($key,$v);}
else
    { check_data($key,$v);}
if(!is_array($value))
    { check($value,$v);}
else
    { check_data($value,$v);}
 }
}
function check($str,$v)
{
foreach($v as $key=>$value)
    {
if (preg_match("/".$value."/is",$str)==1||preg_match("/".$value."/is",urlencode($str))==1)
        {
//W_log("<br>IP: ".$_SERVER["REMOTE_ADDR"]."<br>时间: ".strftime("%Y-%m-%d %H:%M:%S")."<br>页面:".$_SERVER["PHP_SELF"]."<br>提交方式: ".$_SERVER["REQUEST_METHOD"]."<br>提交数据: ".$str);
            print "您的提交带有不合法参数,谢谢合作";
exit();
        }
    }
}
?>
站长XSS,SQL等担忧迎刃而解!

3.PHP防御CC:
代码为酸奶博客首发,经过二次优化后发出。请先建立一个php文件,名为jiance.php,然后将以下代码放入,将php文件放入模板目录。

<?php
//代理IP直接退出
emptyempty($_SERVER['HTTP_VIA']) or exit('Access Denied');
//防止快速刷新
session_start();
$seconds = '60'; //时间段[秒]
$refresh = '25'; //刷新次数
//设置监控变量
$cur_time = time();
if(isset($_SESSION['last_time'])){
 $_SESSION['refresh_times'] += 1;
}else{
 $_SESSION['refresh_times'] = 1;
 $_SESSION['last_time'] = $cur_time;
}
//处理监控结果
if($cur_time - $_SESSION['last_time'] < $seconds){
 if($_SESSION['refresh_times'] >= $refresh){
  //攻击者跳转地址
   $url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  echo '<html><head><title>西顾5秒盾</title><h3><center><font color="#FF0000">检测到cc攻击请等待5秒跳转</font></center></h3><meta http-equiv="refresh" content="5;url='; 
  echo $url;
  echo '"/> </head></html>';
  exit();
 }
}else{
 $_SESSION['refresh_times'] = 0;
 $_SESSION['last_time'] = $cur_time;
}
?>

然后将以下代码扔入模板的header.php里即可生效!
include 'jianche.php';

没有一定基础建议不要乱改!

版权所有:《博客之家
文章标题:《分享几套防御代码
除非注明,文章均为 《博客之家》 原创
转载请注明本文短网址:http://bk.likinming.com/post-902.html  [生成短网址]

日期:2017年12月03日 星期日   分类:好文分享   浏览(405)

留言/评论:◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

填写好QQ号码,任点空白处自动获取

昵称

邮箱

网址

网站提交

  • 名称:
  • 网址:
Copyright © 2012 - 2017 by 李明关于本站免责声明本站下载站点地图sitemap广告联系