±àд°²È« PHP Ó¦ÓóÌÐòµÄÆß¸öϰ¹ß
ÔÚÌá¼°°²È«ÐÔÎÊÌâʱ£¬ÐèҪעÒ⣬³ýÁËʵ¼ÊµÄƽ̨ºÍ²Ù×÷ϵͳ°²È«ÐÔÎÊÌâÖ®Í⣬Äú»¹ÐèҪȷ±£±àд°²È«µÄÓ¦ÓóÌÐò¡£ÔÚ±àд PHP Ó¦ÓóÌÐòʱ£¬ÇëÓ¦ÓÃÏÂÃæµÄÆß¸öϰ¹ßÒÔÈ·±£Ó¦ÓóÌÐò¾ßÓÐ×îºÃµÄ°²È«ÐÔ£º
ÑéÖ¤ÊäÈë
±£»¤Îļþϵͳ
±£»¤Êý¾Ý¿â
±£»¤»á»°Êý¾Ý
±£»¤¿çÕ¾µã½Å±¾£¨Cross-site scripting£¬XSS£©Â©¶´
¼ìÑé±íµ¥ post
Õë¶Ô¿çÕ¾µãÇëÇóαÔ죨Cross-Site Request Forgeries£¬CSRF£©½øÐб£»¤
ÑéÖ¤ÊäÈë
ÔÚÌá¼°°²È«ÐÔÎÊÌâʱ£¬ÑéÖ¤Êý¾ÝÊÇÄú¿ÉÄܲÉÓõÄ×îÖØÒªµÄϰ¹ß¡£¶øÔÚÌá¼°ÊäÈëʱ£¬Ê®·Ö¼òµ¥£º²»ÒªÏàÐÅÓû§¡£ÄúµÄÓû§¿ÉÄÜÊ®·ÖÓÅÐ㣬²¢ÇÒ´ó¶àÊýÓû§¿ÉÄÜÍêÈ«°´ÕÕÆÚÍûÀ´Ê¹ÓÃÓ¦ÓóÌÐò¡£µ«ÊÇ£¬Ö»ÒªÌṩÁËÊäÈëµÄ»ú»á£¬Ò²¾Í¼«ÓпÉÄÜ´æÔڷdz£Ôã¸âµÄÊäÈë¡£×÷ΪһÃûÓ¦ÓóÌÐò¿ª·¢ÈËÔ±£¬Äú±ØÐë×èÖ¹Ó¦ÓóÌÐò½ÓÊÜ´íÎóµÄÊäÈë¡£×Ðϸ¿¼ÂÇÓû§ÊäÈëµÄλÖü°ÕýÈ·Öµ½«Ê¹Äú¿ÉÒÔ¹¹½¨Ò»¸ö½¡×³¡¢°²È«µÄÓ¦ÓóÌÐò¡£
ËäÈ»ºóÎĽ«½éÉÜÎļþϵͳÓëÊý¾Ý¿â½»»¥£¬µ«ÊÇÏÂÃæÁгöÁËÊÊÓÃÓÚ¸÷ÖÖÑéÖ¤µÄÒ»°ãÑéÖ¤Ìáʾ£º
ʹÓð×Ãûµ¥ÖеÄÖµ
ʼÖÕÖØÐÂÑéÖ¤ÓÐÏÞµÄÑ¡Ïî
ʹÓÃÄÚÖÃתÒ庯Êý
ÑéÖ¤ÕýÈ·µÄÊý¾ÝÀàÐÍ£¨ÈçÊý×Ö£©
°×Ãûµ¥ÖеÄÖµ£¨White-listed value£©ÊÇÕýÈ·µÄÖµ£¬ÓëÎÞЧµÄºÚÃûµ¥Öµ£¨Black-listed value£©Ïà¶Ô¡£Á½ÕßÖ®¼äµÄÇø±ðÊÇ£¬Í¨³£ÔÚ½øÐÐÑé֤ʱ£¬¿ÉÄÜÖµµÄÁбí»ò·¶Î§Ð¡ÓÚÎÞЧֵµÄÁбí»ò·¶Î§£¬ÆäÖÐÐí¶àÖµ¿ÉÄÜÊÇδֵ֪»òÒâÍâÖµ¡£
ÔÚ½øÐÐÑé֤ʱ£¬¼ÇסÉè¼Æ²¢ÑéÖ¤Ó¦ÓóÌÐòÔÊÐíʹÓõÄֵͨ³£±È·ÀÖ¹ËùÓÐδֵ֪¸üÈÝÒס£ÀýÈ磬Ҫ°Ñ×Ö¶ÎÖµÏÞ¶¨ÎªËùÓÐÊý×Ö£¬ÐèÒª±àдһ¸öÈ·±£ÊäÈëÈ«¶¼ÊÇÊý×ÖµÄÀý³Ì¡£²»Òª±àдÓÃÓÚËÑË÷·ÇÊý×ÖÖµ²¢ÔÚÕÒµ½·ÇÊý×Öֵʱ±ê¼ÇΪÎÞЧµÄÀý³Ì¡£
±£»¤Îļþϵͳ
2000 Äê 7 Ô£¬Ò»¸ö Web Õ¾µãй¶Á˱£´æÔÚ Web ·þÎñÆ÷µÄÎļþÖеĿͻ§Êý¾Ý¡£¸Ã Web Õ¾µãµÄÒ»¸ö·ÃÎÊÕßʹÓà URL ²é¿´Á˰üº¬Êý¾ÝµÄÎļþ¡£ËäÈ»Îļþ±»·Å´íÁËλÖ㬵«ÊÇÕâ¸öÀý×ÓÇ¿µ÷ÁËÕë¶Ô¹¥»÷Õß±£»¤ÎļþϵͳµÄÖØÒªÐÔ¡£
Èç¹û PHP Ó¦ÓóÌÐò¶ÔÎļþ½øÐÐÁËÈÎÒâ´¦Àí²¢ÇÒº¬ÓÐÓû§¿ÉÒÔÊäÈëµÄ±äÁ¿Êý¾Ý£¬Çë×Ðϸ¼ì²éÓû§ÊäÈëÒÔÈ·±£Óû§ÎÞ·¨¶ÔÎļþϵͳִÐÐÈκβ»Ç¡µ±µÄ²Ù×÷¡£Çåµ¥ 1 ÏÔʾÁËÏÂÔØ¾ßÓÐÖ¸¶¨ÃûµÄͼÏñµÄ PHP Õ¾µãʾÀý¡£
Çåµ¥ 1. ÏÂÔØÎļþ
<?php
if ($_POST['submit'] == 'Download') {
$file = $_POST['fileName'];
header("Content-Type: application/x-octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\"" . $file . "\";
Ïà¹ØÎĵµ£º
¸ù¾ÝÄãµÄʹÓÃÄ¿µÄÎÒ¾õµÃÕâ¸öº¯ÊýÓÐÁ½·½ÃæµÄÓÃ;£º
·ÀÖ¹SQL Injection¹¥»÷£¬Ò²¾ÍÊÇÄã±ØÐëÑéÖ¤Óû§µÄÊäÈë
²Ù×÷Êý¾ÝµÄʱºò±ÜÃâ²»±ØÒªµÄ×Ö·ûµ¼Ö´íÎó
mysql_real_escape_string() º¯ÊýתÒå SQL Óï¾äÖÐʹÓõÄ×Ö·û´®ÖеÄÌØÊâ×Ö·û¡£
ÏÂÁÐ×Ö·ûÊÜÓ°Ï죺
\x00
\n
\r
\
'
"
\x1a
Èç¹û³É¹¦£¬Ôò¸Ãº¯Êý·µ»Ø±»×ªÒåµÄ×Ö·û´ ......
ĿǰLAMP (Linux + Apache + MySQL + PHPspan style="font-family: Verdana;">) ½ü¼¸ÄêÀ´·¢Õ¹Ñ¸ËÙ£¬ÒѾ³ÉΪWeb ·þÎñÆ÷µÄÊÂʵ±ê×¼¡£LAMPÕâ¸ö´ÊµÄÓÉÀ´×îÔçʼÓڵ¹úÔÓÖ¾“c't Mag
azine”£¬Michael KunzeÔÚ1990Äê×îÏȰÑÕâЩÏîÄ¿×éºÏÔÚÒ»Æð´´ÔìÁËLAMPµÄËõд×Ö¡£ÕâЩ×é¼þËäÈ»²¢²»ÊÇ¿ª¿ªÊ¼¾ÍÉè¼ÆÎªÒ»Æðʹ ......
»ù±¾µÄ PHP Óï·¨
PHP µÄ½Å±¾¿éÒÔ <?php ¿ªÊ¼£¬ÒÔ ?> ½áÊø¡£Äú¿ÉÒÔ°Ñ PHP µÄ½Å±¾¿é·ÅÖÃÔÚÎĵµÖеÄÈκÎλÖá£
µ±È»£¬ÔÚÖ§³Ö¼òдµÄ·þÎñÆ÷ÉÏ£¬Äú¿ÉÒÔʹÓà <? ºÍ ?> À´¿ªÊ¼ºÍ½áÊø½Å±¾¿é¡£
²»¹ý£¬ÎªÁË´ïµ½×îºÃµÄ¼æÈÝÐÔ£¬ÎÒÃÇÍÆ¼öÄúʹÓñê×¼ÐÎʽ (<?php)£¬¶ø²»ÊǼòдÐÎʽ¡£
<?php
?>
PHP Îļþͨ³£»á°ü ......
×Ö·û´®±äÁ¿ÓÃÓÚ´æ´¢²¢´¦ÀíÎı¾Æ¬¶Î¡£
PHP ÖеÄ×Ö·û´®
×Ö·û´®±äÁ¿ÓÃÓÚ°üº¬×Ö·û´®µÄÖµ¡£
ÔÚ±¾½Ì³ÌÖУ¬ÎÒÃÇ´òËã½éÉܼ¸¸öÔÚ PHP ÖÐÓÃÓÚ²Ù×÷×Ö·û´®µÄ×î³£Óõĺ¯ÊýºÍÔËËã·û¡£
ÔÚ´´½¨×Ö·û´®Ö®ºó£¬ÎÒÃǾͿÉÒÔ¶ÔËü½øÐвÙ×÷ÁË¡£Äú¿ÉÒÔÖ±½ÓÔÚº¯ÊýÖÐʹÓÃ×Ö·û´®£¬»òÕß°ÑËü´æ´¢ÔÚ±äÁ¿ÖС£
ÔÚÏÂÃæ£¬PHP ½Å±¾°Ñ×Ö·û´® "Hello World" ¸³ ......
¹«Ë¾·´Ó¦Äͷɼҽ̺ͼæÖ°ºǫ́ÏÔʾµÄʱ¼ä¸úʵ¼Ê×¢²áµÄʱ¼äÏà²î8Сʱ¡£
·¢ÏÖʱ¼äÒ»Ö±¶Ô²»ÉÏ£¬date("Y-m-d h:i:s") ×ÜÊÇÓë·þÎñÆ÷ʱ¼ä²î8¸öСʱ£®ºóÀ´·¢ÏÖ£¬ÎÒÏÖÔڵĻúÆ÷ÉϵÄphpÊÇ5.14µÄ£®¡¡
ÔÀ´´Óphp5.1.0¿ªÊ¼£¬php.iniÀï¼ÓÈëÁËdate.timezoneÕâ¸öÑ¡ÏĬÈÏÇé¿öÏÂÊǹرյÄ
Ò²¾ÍÊÇÏÔʾµÄʱ¼ä£¨ÎÞÂÛÓÃʲôphpÃüÁ¶¼ÊǸñÁ ......