PHP程序漏洞产生的原因和防范方法

作者:凯旋网络来源:凯旋网络
or_handler()的信息,大家可以参考PHP的官方手册。

  POST漏洞

  1.漏洞原因:

  前面已经说过,依靠register_globals来注册变量是个不好的习惯。在一些留言本和论坛程序中,更要严格检查获得页面的方式和提交的时间间隔。以防止灌水式发帖和外部提交。我们看一下以下某留言本程序的代码:

...
$text1=flt_tags($text1);
$text2=flt_tags($text2);
$text3=flt_tags($text3);
Www~Chinaz~com

$fd=fopen("data.php","a");
fwrite($fd,"\r\n$text1&line;$text2&line;$text3");
fclose($fd);
...

  很明显的,如果我们提交网址”post.php?text1=testhaha&text2=testhaha&text3=testhaha”。数据就会被正常写入文件中。此程序并没有检测变量的来源和浏览器获得页面的方式。如果我们向这个页面重复多次提交,就会起到洪水的作用。现在也有一些软件利用这个漏洞来在论坛或留言本上发广告,这是可耻的行为(我朋友的留言本就在1星期内被灌了10多页,无奈)。

  2.漏洞解决:

  在进行数据处理和保存前,首先判断浏览器的获得页面方式。使用 PHP程序漏洞产生的原因和防范方法 - 凯旋网络

PHP程序漏洞产生的原因和防范方法

作者:凯旋网络来源:凯旋网络
content
  • 广告推荐
    SERVER["REQUEST_METHOD"]变量来获得浏览器的获得页面方式。检查其是否为”POST”。在脚本中使用session来记录用户是否通过正常途径(即填写提交内容的页面)来提交数据。或使用 PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SERVER["HTTP_REFERER"]来检测,但不推荐这样做。因为部分浏览器没有设置REFERER,有部分防火墙也会屏蔽REFERER。另外,我们也要对提交内容检查,看数据库中是否有重复内容。以留言本为例,使用Session进行判定:

    中.国.站.长.站


    填写浏览内容的页面中,我们在最前端加上:

    PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SESSION["allowgbookpost"]=time(); //登记填写时的时间

      在接受留言数据并保存的页面中我们在进行数据处理前我们也用Session进行以下处理:

    if(strtoupper( PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SERVER["REQUEST_METHOD"])!=”POST”){ die("错误:请勿在外部提交。"); } //检查页面获得方法是否为POST
    if(!isset( PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SESSION["allowgbookpost"]) or (time()- PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SESSION["allowgbookpost"] < 10)){ die("错误:请勿在外部提交。"); } //检查留言填写时的时间
    if(isset( PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SESSION["gbookposttime"]) and (time()- PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SESSION["gbookposttime"] < 120)){ die("错误:两次提交留言的间隔不得少于 2 分钟。"); } //检查留言间隔 中国站.长.站

    unset( PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SESSION["allowgbookpost"]); //注销allowgbookpost变量以防止一次进入填写页面多次进行提交
    PHP程序漏洞产生的原因和防范方法 - 凯旋网络

    PHP程序漏洞产生的原因和防范方法

    作者:凯旋网络来源:凯旋网络
    content
  • 广告推荐
    SESSION["gbookposttime"]=time(); //登记发送留言的时间,防止灌水或恶意攻击
    ...
    数据处理及保存
    ...

      经过这样重重审查,你的程序就安全很多了。

  • 广告推荐