ÈçºÎÔÚphpÖÐÐÞ²¹XSS©¶´
ÔÚPHPÖÐÐÞ²¹XSS©¶´£¬ÎÒÃÇ¿ÉÒÔʹÓÃÈý¸öPHPº¯Êý¡£
¡¡¡¡ÕâЩº¯ÊýÖ÷ÒªÓÃÓÚÇå³ýHTML±êÖ¾£¬ÕâÑù¾Íû°ì·¨×¢Èë´úÂëÁË¡£Ê¹Óøü¶àµÄº¯ÊýÊÇhtmlspecialchars() £¬Ëü¿ÉÒÔ½«ËùÓеÄ"<"Óë">"·ûºÅת»»³É"<" Óë">;"¡£ÆäËü¿É¹©Ñ¡ÔñµÄº¯Êý»¹ÓÐhtmlentities(), Ëü¿ÉÒÔÓÃÏàÓ¦µÄ×Ö·ûʵÌå(entities)Ìæ»»µôËùÓÐÏëÒªÌæ»»µôµÄÌØÕ÷Âë(characters)¡£
¡¡¡¡PHP Code:
¡¡¡¡// ÕâÀïµÄ´úÂëÖ÷ÒªÓÃÓÚչʾÕâÁ½¸öº¯ÊýÖ®¼äÊä³öµÄ²»Í¬
¡¡¡¡$input = '';
¡¡¡¡echo htmlspecialchars($input) . '
¡¡¡¡';
¡¡¡¡echo htmlentities($input);
¡¡¡¡?>
¡¡¡¡htmlentities()µÄÁíÒ»¸öÀý×Ó
¡¡¡¡PHP Code:
¡¡¡¡$str = "A 'quote' is bold";
¡¡¡¡echo htmlentities($str);
¡¡¡¡echo htmlentities($str, ENT_QUOTES);
¡¡¡¡?>
¡¡¡¡µÚÒ»¸öÏÔʾ£º A 'quote' is bold
¡¡¡¡µÚ¶þ¸öÏÔʾ£ºA 'quote' is bold
¡¡¡¡htmlspecialchars()ʹÓÃʵÀý
¡¡¡¡PHP Code:
¡¡¡¡$new = htmlspecialchars("Test", ENT_QUOTES);
¡¡¡¡echo $new;
¡¡¡¡?>
¡¡¡¡ÏÔʾ£º Test
¡¡¡¡strip_tags()º¯Êý´úÌæ.ɾ³ýËùÓеÄHTMLÔªËØ(elements)£¬³ýÁËÐèÒªÌØ±ðÔÊÐíµÄÔªËØÖ®Í⣬È磺, »ò
¡¡¡¡.
¡¡¡¡strip_tags()ʹÓÃʵÀý
¡¡¡¡PHP Code:
¡¡¡¡$text = '
¡¡¡¡Test paragraph.
¡¡¡¡Other text';
¡¡¡¡echo strip_tags($text);
¡¡¡¡echo "\n";
¡¡¡¡// allow
¡¡¡¡echo strip_tags($text, '
¡¡¡¡');
¡¡¡¡?>
¡¡¡¡ÏÖÔÚÎÒÃÇÖÁÉÙÒѾ֪µÀÓÐÕâЩº¯ÊýÁË£¬µ±ÎÒÃÇ·¢ÏÖÎÒÃǵÄÕ¾µã´æÔÚXSS©¶´Ê±¾Í¿ÉÒÔʹÓÃÕâЩ´úÂëÁË¡£ÎÒ×î½üÔÚÎÒµÄÕ¾µãÉϵÄGoogleBig(Ò»¸öMybbÂÛ̳µÄ²å¼þ)ÊÓÆµ²¿·Ö·¢ÏÖÁËÒ»¸öXSS©¶´£¬Òò´ËÎÒ¾ÍÔÚÏëÈçºÎʹÓÃÕâЩº¯Êýд¶Î´úÂëÀ´ÐÞ²¹Õâ¸öËÑË÷©¶´¡£
¡¡¡¡Ê×ÏÈÎÒ·¢ÏÖÎÊÌâ³öÔÚsearch.phpÕâÒ»ÎļþÉÏ£¬ÏÖÔÚÈÃÎÒÃÇ¿´¿´Õâ¸ö²éѯ¼°Êä³ö²éѯ½á¹ûÖеIJ¿·Ö´úÂëÑо¿Ò»Ï£º
¡¡¡¡PHP Code:
¡¡¡¡function search($query, $page)
¡¡¡¡{
¡¡¡¡global $db, $bgcolor2, $bgcolor4, $sitename, $io_db, $module_url, $list_page_items, $hm_index;
¡¡¡¡$option = trim($option);
¡¡¡¡$query = trim($query);
¡¡¡¡$query = FixQuotes(nl2br(filter_text($query)));
¡¡¡¡$db->escape_string($query);
¡¡¡¡$db->escape_string($option);
¡¡¡¡alpha_search($query);
¡¡¡¡...
¡¡¡¡ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇͨ¹ýʹÓÃ$queryÕâÒ»Öµ×÷Ϊ±äÁ¿£¬È»ºóʹÓÃhtmlentities()ÕâÒ»º¯Êý£º
¡¡¡¡PHP Code:
¡¡¡¡$query = FixQuote
Ïà¹ØÎĵµ£º
½üÀ´¶Ôphp±È½Ï¸ÐÐËȤ£¬¾Í¶Ï¶ÏÐøÐøµÄ»¨ÁËÁ½¸öÐÇÆÚµÄʱ¼ä°ÑÕû¸öphp¿ª·¢ÐèÒªÓõ½µÄ¶«Î÷¶¼×°ºÃÁË£¬´ó¸ÅµÄ°²×°¹ý³ÌÈçÏ¡£
Ò»¡¢°²×°µÄÈí¼þ:
Apache: 2.2.14
PHP:5.2.12
MySQL:5.1.42¡£
SVN:1.5.6
PHPMyAdmin:3.2.5
Zend Studio: 7.1
Zend Debugger: 5.1.14
¶þ¡¢°²×°¹ý³Ì£º
1. °²×°ºÍÅäÖÃapache
°²×°£ºÊ×ÏÈ´Óhttp://apa ......
LinuxÏÂÈí¼þ¡¢PHPºÍPerlµÄÄ£¿éµÈ¶¼ÊµÏÖÁË×Ô¶¯°²×°£¬ÕæµÄºÜ·½±ã£¬±¾Îļòµ¥½éÉÜһϡ£
linuxÏ¿ÉÒÔʹÓÃyum¹¤¾ß£¬RedhatÏÂ×Ô¶¯´øÓУº
yum list php* //¿ÉÒԲ鿴phpµÄÏà¹ØÄ£¿é
yum install php //°²×°phpÕâ¸öÄ£¿é
phpÄ£¿éµÄ×Ô¶¯°²×°(ÀûÓÃpecl.php.netºÍpear.php.netÔÚÏß°²×°)£º
ÀûÓÃpearºÍpecl¹¤¾ß£¬Ê×ÏÈÐèÒª° ......
ÕýºÃ¹¤×÷ÖÐÅäµ½´ËÀàÎÊÌ⣬д³öÀ´ºÍ´ó¼Ò·ÖÏí¡£ºÜ¶àÍøÓÑÌṩÁËʹÓÃurlencode ºÍ urldecodeµÄ·½Ê½È¥±àÂëºÍ½âÂ룬˵µÄ²»È«Ãæ¡£ÓеÄʱºòÒ²»áÅöµ½ÕâÑùµÄÎÊÌâ¡£
1.Ê×ÏÈÒª¼ì²éÄãapacheºÍphpµÄ·þÎñÆ÷ĬÈÏÓïÑÔ¡£ÔÚwindowÏ£¬¿ÉÒԲο¼apacheµÄÅäÖÃÎļþhttpd.conf¡£ ÔÚAddCharset¸½½üÔÚ¼ÓÉÏÏÂÃæµÄÃüÁîÐУº
AddDefaultCharset UTF-8
......
µÚÒ»Õ PHP¸ÅÊö
1¡¢ »ù±¾Óï·¨
a) Òª°ÑphpǶÈëÒ³Ãæ£¬¿ÉÒÔ°ÑËü·ÅÔÚPHP±êÇ©ÄÚ
<?php ?>
b) ÔÚbody±êÇ©½áÊøÖ®Ç°£¬²åÈëphp´úÂë
c)   ......
Ò»£º½á¹¹ºÍµ÷ÓÃ(ʵÀý»¯)£º
class className{} £¬µ÷Óãº$obj = new className();µ±ÀàÓй¹Ô캯Êýʱ£¬»¹Ó¦´«Èë²ÎÊý¡£Èç$obj = new className($v,$v2...);
¶þ£º¹¹Ô캯ÊýºÍÎö¹¹º¯Êý£º
1¡¢¹¹Ô캯ÊýÓÃÓÚ³õʼ»¯£ºÊ¹ÓÃ__construct()£¬¿É´ø²ÎÊý¡£
2¡¢µ«Îö¹¹º¯Êý²»ÄÜ´ø²ÎÊý£¨ÓÃÓÚÔÚÏúÈ¥Ò»¸öÀà֮ǰִÐÐһЩ²Ù×÷»ò¹¦ÄÜ£©¡£Îö¹¹º¯ÊýÓà ......