您的位置:首页网络冲浪防范措施 → PHP 安全 (1)

PHP 安全 (1)

时间:2004/10/8 16:37:00来源:本站整理作者:蓝点我要评论(0)

       PHP °²È« £¨1£©
Ô­×÷£ºJohn Coggeshall 07/31/2003
Ô­ÎÄ£ºhttp://www.onlamp.com/pub/a/php/2003/07/31/php_foundations.html


ÔÚ×î½üµÄÁ½Æª×¨À¸ÎÄÕ£¨¡¶³£¼ûÑùʽ´íÎó£¨ÉÏ£©¡·ºÍ¡¶³£¼ûÑùʽ´íÎó£¨Ï£©¡·£©ÖÐÎÒÌÖÂÛÁËһЩÔÚ±àдPHP³Ìʽʱ³£¼ûµÄʹ³ÌʽÄÑÓÚÔĶÁºÍÒ×µ¼ÖÂBUGµÄ»µÏ°¹ß¡£



ÔÚ½ñÌìµÄÎÄÕÂÖУ¬ÎÒ½«×ªÏòÌÖÂÛÕâ¸öϵÁеÄÖص㣺ʹÓÃPHPʱ£¬°²È«ÎÊÌâµÄÖØÒªÐÔ¡£



¹Ø×¢°²È«ÎÊÌâµÄÖØÒªÐÔ



¿´µ½µÄÔ¶·ÇÈ«²¿



×èÖ¹Óû§¶ñÒâÆÆ»µÄãµÄ³Ìʽ×îÓÐЧȴ¾­³£±»ºöÂԵķ½·¨ÊÇÔÚд´úÂëʱ¾Í¿¼ÂÇËüµÄ¿ÉÄÜÐÔ¡£ÁôÒâ´úÂëÖпÉÄܵݲȫÎÊÌâÊǺÜÖØÒªµÄ¡£¿¼ÂÇϱߵÄÖ¼ÔÚ¼ò»¯ÓÃPHPÖÐдÈë´óÁ¿Îı¾ÎļþµÄ¹ý³ÌµÄʵÀýº¯Êý£º




function write_text($filename, $text="") {

        static $open_files = array();



        // Èç¹ûÎļþÃû¿Õ£¬¹Ø±ÕÈ«²¿Îļþ

        if ($filename == NULL) {

                foreach($open_files as $fr) {

                       fclose($fr);

                }

                return true;

        }

        $index = md5($filename);  

    

        if(!isset($open_files[$index])) {

                $open_files[$index] = fopen($filename, "a+");

                if(!$open_files[$index]) return false;

        }

        fputs($open_files[$index], $text);

        return true;

}?>


Õâ¸öº¯Êý´øÓÐÁ½¸öȱʡ²ÎÊý£¬ÎļþÃûºÍҪдÈëÎļþµÄÎı¾¡£



º¯Êý½«Ïȼì²éÎļþÊÇ·ñÒѱ»´ò¿ª£»Èç¹ûÊÇ£¬½«Ê¹ÓÃÔ­À´µÄÎļþ¾ä±ú¡£·ñÔò£¬½«×ÔÐд´½¨¡£ÔÚÕâÁ½ÖÖÇé¿öÖУ¬Îı¾¶¼»á±»Ð´ÈëÎļþ¡£



Èç¹û´«µÝ¸øº¯ÊýµÄÎļþÃûÊÇNULL£¬ÄÇôËùÓдò¿ªµÄÎļþ½«±»¹Ø±Õ¡£Ï±ßÌṩÁËÒ»¸öʹÓÃÉϵÄʵÀý¡£



Èç¹û¿ª·¢ÕßÒÔϱߵĸñʽÀ´Ð´Èë¶à¸öÎı¾Îļþ£¬ÄÇôÕâ¸öº¯Êý½«Çå³þºÍÒ׶ÁµÄ¶à¡£



ÈÃÎÒÃǼٶ¨Õâ¸öº¯Êý´æÔÚÓÚÒ»¸öµ¥¶ÀµÄÎļþÖУ¬Õâ¸öÎļþ°üº¬Á˵÷ÓÃÕâ¸öº¯ÊýµÄ´úÂë¡£

ϱßÊÇÒ»¸öÕâÑùµÄ³Ìʽ£¬ÎÒÃǽÐËüquotes.php£º







Choose the nature of the quote:




The quote:










  include_once('write_text.php');



  $filename = "/home/web/quotes/{$_GET['quote']}";

  $quote_msg = $_GET['quote_text'];



  if (write_text($filename, $quote_msg)) {

    echo "

Quote saved!

";

  } else {

    echo "

Error writing quote

";

  }

  write_text(NULL);

?>

ÈçͬÄã¿´µ½µÄ£¬Õâλ¿ª·¢ÕßʹÓÃÁËwrite_text()º¯ÊýÀ´´´½¨Ò»¸öÌåϵʹµÃÓû§¿ÉÒÔÌá½»ËûÃÇϲ»¶µÄ¸ñÑÔ£¬ÕâЩ¸ñÑÔ½«±»´æ·ÅÔÚÒ»¸öÎı¾ÎļþÖС£



²»ÐÒµÄÊÇ£¬¿ª·¢Õß¿ÉÄÜûÓÐÏëµ½£¬Õâ¸ö³ÌʽҲÔÊÐíÁ˶ñÒâÓû§Î£º¦web serverµÄ°²È«¡£



Ò²ÐíÏÖÔÚÄãÕýÄÓ×ÅÍ·Ïëמ¿¾¹Õâ¸ö¿´ÆðÀ´ºÜÎÞ¹¼µÄ³ÌʽÔõÑùÒýÈëÁË°²È«·çÏÕ¡£

Èç¹ûÄã¿´²»³öÀ´£¬¿¼ÂÇϱßÕâ¸öURL£¬¼ÇסÕâ¸ö³Ìʽ½Ð×öquotes.php£º



http://www.somewhere.com/fun/quotes.php?quote=different_file.dat"e_text=garbage+data



µ±Õâ¸öURL´«µÝ¸øweb server ʱ½«»á·¢Éúʲô£¿



ÏÔÈ»£¬quotes.php½«±»Ö´ÐУ¬µ«ÊÇ£¬²»Êǽ«Ò»¾ä¸ñÑÔдÈëµ½ÎÒÃÇÏ£ÍûµÄÈý¸öÎļþÖÐÖ®Ò»£¬Ïà·´µÄ£¬Ò»¸ö½Ð×ödifferent_file.datµÄÐÂÎļþ½«±»½¨Á¢£¬ÆäÖаüº¬Ò»¸ö×Ö·û´®garbage data¡£



ÏÔÈ»£¬Õâ²»ÊÇÎÒÃÇÏ£ÍûµÄÐÐΪ£¬¶ñÒâÓû§¿ÉÄÜͨ¹ý°ÑquoteÖ¸¶¨Îª../../../etc/passwdÀ´·ÃÎÊUNIXÃÜÂëÎļþ´Ó¶ø´´½¨Ò»¸öÕʺţ¨¾¡¹ÜÕâÐèÒªweb serverÒÔsuperuserÔËÐгÌʽ£¬Èç¹ûÊÇÕâÑùµÄ£¬ÄãÓ¦¸ÃÍ£Ö¹ÔĶÁ£¬ÂíÉÏÈ¥ÐÞ¸´Ëü£©¡£



Èç¹û/home/web/quotes/¿ÉÒÔͨ¹ýä¯ÀÀÆ÷·ÃÎÊ£¬¿ÉÄÜÕâ¸ö³Ìʽ×îÑÏÖصݲȫÎÊÌâÊÇËüÔÊÐíÈκÎÓû§Ð´ÈëºÍÔËÐÐÈÎÒâPHP³Ìʽ¡£Õ⽫´øÀ´ÎÞÇîµÄÂé·³¡£



ÕâÀïÓÐһЩ½â¾ö·½°¸¡£Èç¹ûÄãÖ»ÐèҪдÈëĿ¼ÏµÄһЩÎļþ£¬¿ÉÒÔ¿¼ÂÇʹÓÃÒ»¸öÏà¹ØµÄÊý×éÀ´´æ·ÅÎļþÃû¡£Èç¹ûÓû§ÊäÈëµÄÎļþ´æÔÚÓÚÕâ¸öÊý×éÖУ¬¾Í¿ÉÒÔ°²È«µÄдÈë¡£ÁíÒ»¸öÏë·¨ÊÇÈ¥µôËùÓеIJ»ÊÇÊý×ÖºÍ×ÖĸµÄ×Ö·ûÀ´È·±£Ã»ÓÐĿ¼·Ö¸î·ûºÅ¡£»¹ÓÐÒ»¸ö°ì·¨ÊǼì²éÎļþµÄÀ©Õ¹ÃûÀ´±£Ö¤Îļþ²»»á±»web serverÖ´ÐС£



Ô­ÔòºÜ¼òµ¥£¬×÷Ϊһ¸ö¿ª·¢ÕßÄã±ØÐë±È³ÌʽÔÚÄãÏ£ÍûµÄÇé¿öÏÂÔËÐÐʱ¿¼ÂǸü¶à¡£

Èç¹û·Ç·¨Êý¾Ý½øÈëµ½Ò»¸öformÔªËØÖлᷢÉúʲô£¿¶ñÒâÓû§ÊÇ·ñÄÜʹÄãµÄ³ÌʽÒÔ²»Ï£ÍûµÄ·½Ê½ÔËÐУ¿Ê²Ã´·½·¨ÄÜ×èÖ¹ÕâЩ¹¥»÷£¿ÄãµÄweb serverºÍPHP³ÌʽֻÓÐÔÚ×îÈõµÄ°²È«Á´½ÓÏ²Ű²È«£¬ËùÒÔÈ·ÈÏÕâЩ¿ÉÄܲ»°²È«µÄÁ´½ÓÊÇ·ñ°²È«ºÜÖØÒª¡£





³£¼ûµÄÉæ¼°°²È«µÄ´íÎó



ÕâÀï¸ø³öһЩҪµã£¬Ò»¸ö¿ÉÄÜΣ¼°°²È«µÄ±àÂëÉϵĺ͹ÜÀíÉϵÄʧÎóµÄ¼òÒª²»ÍêÕûÁбí

´íÎó1¡£ÐÅÀµÊý¾Ý
ÕâÊǹᴩÓÚÎÒ¹ØÓÚPHP³Ìʽ°²È«µÄÌÖÂÛµÄÖ÷Ì⣬Äã¾ö²»ÄÜÏàÐÅÒ»¸öÀ´×ÔÍⲿµÄÊý¾Ý¡£²»¹ÜËüÀ´×ÔÓû§Ìá½»±íµ¥£¬ÎļþϵͳµÄÎļþ»òÕß»·¾³±äÁ¿£¬ÈκÎÊý¾Ý¶¼²»Äܼòµ¥µÄÏ뵱ȻµÄ²ÉÓá£ËùÒÔÓû§ÊäÈë±ØÐë½øÐÐÑéÖ¤²¢½«Ö®¸ñʽ»¯ÒÔ±£Ö¤°²È«¡£

´íÎó2¡£ÔÚwebĿ¼Öд洢Ãô¸ÐÊý¾Ý
ÈκκÍËùÓеÄÃô¸ÐÊý¾Ý¶¼Ó¦¸Ã´æ·ÅÔÚ¶ÀÁ¢ÓÚÐèҪʹÓÃÊý¾ÝµÄ³ÌʽµÄÎļþÖУ¬²¢±£´æÔÚÒ»¸ö²»ÄÜͨ¹ýä¯ÀÀÆ÷·ÃÎʵÄĿ¼Ï¡£µ±ÐèҪʹÓÃÃô¸ÐÊý¾Ýʱ£¬ÔÙͨ¹ýinclude »ò requireÓï¾äÀ´°üº¬µ½Êʵ±µÄPHP³ÌʽÖС£

´íÎó3¡£²»Ê¹ÓÃÍƼöµÄ°²È«·À·¶´ëÊ©
PHPÊÖ²á°üº¬ÁËÔÚʹÓúͱàдPHP³Ìʽʱ¹ØÓÚ°²È«·À·¶µÄÍêÕûÕ½ڡ£ÊÖ²áÒ²£¨¼¸ºõ£©»ùÓÚ°¸ÀýÇå³þµÄ˵Ã÷ÁËʲôʱºò´æÔÚDZÔÚ°²È«·çÏÕºÍÔõô½«·çÏÕ½µµÍµ½×îµÍ¡£ÓÖÈ磬¶ñÒâÓû§ÒÀ¿¿¿ª·¢Õߺ͹ÜÀíÔ±µÄʧÎóµÃµ½¹ØÐĵݲȫÐÅÏ¢ÒÔ»ñȡϵͳµÄȨÏÞ¡£ÁôÒâÕâЩ¾¯¸æ²¢Êʵ±µÄ²ÉÈ¡´ëÊ©À´¼õС¶ñÒâÓû§¸øÄãµÄϵͳ´øÀ´ÕæÕýµÄÆÆ»µµÄ¿ÉÄÜÐÔ¡£

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 防止DdoS攻击:通过路解析卡巴斯基特色之漏 网站被sql注入的修复方法Ubuntu破解Windows和防护的三种方法防黑客qq改密码技巧如何保证Foxmail泄露邮箱密码安全

人气排行 路由器被劫持怎么办?路由器DNS被黑客篡改怎防止DdoS攻击:通过路由器绕过DDoS防御攻击如何彻底清除电脑病毒?如何使用无忧隐藏无线路由防蹭网办法车模兽兽激情视频下载暗藏木马使用四款防黑客软件的体会怎么防止木马入侵