±àд°²È« 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 . "\";
Ïà¹ØÎĵµ£º
PHPÊý×麯ÊýÖÐòËÆûÓÐÌṩɾ³ýÊý×éÖеÄij¸öÔªËصĺ¯Êý
µ«È´ÓÐÒ»¸öarray_search£¨²éÕÒÊý×éÖеÄij¸öÔªËØ£¬²¢·µ»ØÆä¼üÃû£©
ÄÇô¾ÍÓÃÒ»ÏÂËüÁË
$array_key = array_search($target_value,$target_array);
if($array_key||$array_key==0)unset($target_array[$target_value]);
//ÕâÀïµÄÌõ¼þÓÃ$array_key!==falseÒ²ÊÇ¿ÉÒԵİ ......
»ù±¾µÄ PHP Óï·¨
PHP µÄ½Å±¾¿éÒÔ <?php ¿ªÊ¼£¬ÒÔ ?> ½áÊø¡£Äú¿ÉÒÔ°Ñ PHP µÄ½Å±¾¿é·ÅÖÃÔÚÎĵµÖеÄÈκÎλÖá£
µ±È»£¬ÔÚÖ§³Ö¼òдµÄ·þÎñÆ÷ÉÏ£¬Äú¿ÉÒÔʹÓà <? ºÍ ?> À´¿ªÊ¼ºÍ½áÊø½Å±¾¿é¡£
²»¹ý£¬ÎªÁË´ïµ½×îºÃµÄ¼æÈÝÐÔ£¬ÎÒÃÇÍƼöÄúʹÓñê×¼ÐÎʽ (<?php)£¬¶ø²»ÊǼòдÐÎʽ¡£
<?php
?>
PHP Îļþͨ³£»á°ü ......
PHP 5.3.1
MySQL 5.0.89
Nginx 0.8.33 »ò 0.7.65 £¨¿ÉÑ¡£©
ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔ¿ìËÙÈ«×Ô¶¯¸ã¶¨ CentOS + Nginx + PHP-FPM + MySQL µÄ°²×°ÁË
Õâ¸ö¿É±ÈÍøÉÏÁ÷´«µÄʲôһ¼ü°²×°°üÒªºÃµÃ¶à£¬Ç¿ÁÒÍƼö´Ë·¨°²×°£¬ÊʺÏËùÓвËÄñºÍ¸ßÊÖ
ÎÒ·þÎñÆ÷ÉÏÈ«ÓõÄÔ´ ......
Èç¹ûÄúʹÓùý PHP£¬Äú¾Í»á·¢ÏÖËüÊÇ´´½¨ÌØÐԷḻµÄ Web Ò³ÃæµÄ³öÉ«¹¤¾ß¡£×÷Ϊһ´ó½Å±¾ÓïÑÔ£¬PHP£º
ÈÝÒ×ѧϰ¡£
ÓÐÐí¶àÇ¿´óµÄ¿ò¼Ü£¨±ÈÈç CakePHP ºÍ CodeIgniter£©£¬ÈÃÄúÄܹ»Ïñ Rails ³ÌÐòÔ±Ò»Ñù¸ßЧ¡£
Äܹ»Óë MySQL¡¢PostgreSQL¡¢Microsoft® SQL Server£¬ÉõÖÁ Oracle ͨÐÅ¡£
Äܹ»ÇáËɵØÓë JavaScript ¿ò¼Ü¼¯³É£¬±È ......