[ת] ÃæÏò PHP ¿ª·¢ÈËÔ±µÄ CouchDB »ù´¡ÖªÊ¶
Thomas Myer, ¸ºÔðÈË, Triple Dog Dare Media
Thomas Myer ÊÇÒ»Ãû¹ËÎÊ¡¢×÷¼ÒºÍ½²Ê¦£¬¾ÓסÔÚ Austin¡£Ëû´´Á¢ÁË Triple Dog Dare Media ²¢ÔÚ Twitter ÉÏÒÔ @myerman ׫д²©ÎÄ¡£
¼ò½é£º ×÷Õß Thomas Myer Ïò×ÊÉî PHP ¿ª·¢ÈËÔ±½²ÊöÈçºÎ°Ñ CouchDB Ìí¼Óµ½ËûÃǵļ¼Êõ¹¤¾ßÏäÖС£
Èç¹ûÄúÊÇλµäÐ굀 PHP ¿ª·¢ÈËÔ±£¬¾Í²»ÄÑͨ¹ýÒÔÍùµÄÏîÄ¿µÃµ½ÕâÑùÒ»¸ö½áÂÛ£ºÔÚ¶àÊý£¨Èç¹û²»ÊÇÈ«²¿£©Çé¿öÏ£¬ÎªÁ˽øÐж¯Ì¬Êý¾Ý´¦Àí£¬Äú¶¼»áÈà PHP ÓëÊý¾Ý¿âºó¶Ë½øÐжԻ°£»¶øÔÚÕâЩʵÀýÖУ¬99% µÄÇé¿öÏÂʹÓõͼÊÇ MySQL¡£
Èç½ñ£¬Ê¹ÓùØÏµÐÍÊý¾Ý¿âÎ޿ɺñ·Ç¡£Èç¹ûËù´¦ÀíµÄÊý¾Ý½á¹¹¸´ÔÓ£¬²¢¾ßÓжàÖÖ¹ØÏµ£¬ÄÇôÕâô×öÊǺܺÏÀíµÄ¡£Äú¿ÉÒÔ˳ÀûµØ£¨»òÊDz»Ì«Ë³ÀûµØ£¬È¡¾öÓÚÄú¶Ô SQL µÄÊìϤ³Ì¶È£©½øÐжÔģʽ¡¢Êý¾Ý¹ØÏµ¡¢±íµÈµÈµÄ´¦Àí¡£
²»¹ý£¬ÄúËù´ÓʵÄÏîÄ¿ÓÐʱҲ»áÈÃÄú²»¾Òâ¼äÐÄÉúÒÉÎÊ£º“ΪʲôÎÒÒª×öËùÓÐÕâЩ¹¤×÷£¿” ÄúËù´ÓʵÄÕâ¸öÏîÄ¿°üº¬ÁËһЩ¼òµ¥µÄ»òÄÑÒÔÔ¤²âµÄÊý¾Ý — ÔÚ²»Í¬µÄÈÕ×Ó»ñµÃµÄÊý¾Ý×ֶοÉÄܲ»Í¬ÉõÖÁÊÂÎñÖ®¼äµÄÊý¾Ý×ֶζ¼²»¾¡Ïàͬ¡£ÈôÊÇ´´½¨Ò»¸öģʽÀ´Ô¤²â½«»á³öÏÖʲôÊý¾Ý×ֶΣ¬½á¹ûºÜ¿ÉÄÜ»áµÃµ½ÄÚº¬´óÁ¿¿Õ×ֶεıí»ò´óÁ¿µÄÓ³Éä±í¡£
³£ÓÃËõÂÔÓï
Ajax£ºÒì²½ JavaScript + XML
API£ºÓ¦ÓóÌÐò±à³Ì½Ó¿Ú
GUID£ºÈ«¾ÖΩһ±êʾ·û
HTTP£º³¬Îı¾±ê¼ÇÓïÑÔ
JSON£ºJavaScript ¶ÔÏó×¢ÊÍ
REST£º¾ßÏó״̬´«Êä
SQL£º½á¹¹»¯²éѯÓïÑÔ
UUID£ºÍ¨ÓÃΩһ±êʶ·û
¶ÔÓÚÕâЩÏîÄ¿£¬ÄúÐèÒª²ÉÓÃÒ»ÖÖ²»Í¬µÄ·½Ê½ — ²»Éæ¼°¹ØÏµÐÍÊý¾Ý¿â¡£ÔÚÕâЩÇé¿öÏ£¬ÄúÐèÒªµÄÊÇÒ»¸ö»ùÓÚÎĵµµÄ¡¢Ã»ÓÐģʽµÄ¡¢¾ßÓÐ±âÆ½µØÖ·¿Õ¼äµÄÌØ±ðÊý¾Ý¿â¡£¼òÑÔÖ®£¬ÄúÐèÒª Apache CouchDB¡£
ʲôÊÇ CouchDB£¿
CouchDB ÊÇ£¨¸ù¾Ý Apache CouchDB ÍøÕ¾£©£º
Ò»¸öÎĵµÊý¾Ý¿â·þÎñÆ÷£¬¿Éͨ¹ý RESTful JSON API ·ÃÎÊ¡£
ÎªÌØÊâÄ¿µÄ¶øÉè¼Æ£¬ÎÞģʽ£¬¾ßÓÐ±âÆ½µØÖ·¿Õ¼ä¡£
·Ö²¼Ê½µÄ¡¢ÌØÐԷḻ¡¢¾ß±¸Ë«Ïò³åÍ»¼ì²â¼°¹ÜÀíµÄÔöÁ¿¸´ÖÆ¡£
¿É²éѯ¡¢¿ÉË÷Òý¡¢¾ßÓÐÒ»¸öÃæÏò±íµÄ±¨±íÒýÇæ£¬Ê¹Óà JavaScript ×÷ΪÒýÇæµÄ²éѯÓïÑÔ¡£
ÕâÒâζ×Å£¬Äú¿ÉÒÔ´´½¨Ò»¸öÄܹ»½ÓÊÜ JSON ÎĵµµÄ CouchDB Êý¾Ý¿â¡£Ã¿¸öÎĵµ¾ùÓÐÒ»¸öΩһµÄÐÞ¶© ID ºÍ×ÔÉí½á¹¹£¬¶øÇÒËùÓÐÎĵµ¾ù´æ´¢ÓÚͬһ¸ö±âƽµÄ¼¯ºÏÄÚ¡£ÀýÈ磬¼ÙÉèÄúÉèÖÃÁËÒ»¸ö¼òÀú¼¯¡£µÚÒ»¸ö¼òÀú¾ßÓеÄ×ֶΰüÀ¨£ºÃû¡¢ÐÕ¡¢µç»°ºÅÂë¡¢µç×ÓÓʼþµØÖ·¡¢Twitter ÕÊ»§¡¢Ìس¤ÒÔ¼°ÏêϸµÄ¹¤×÷¾Àú¡£¶øµÚ¶þ¸ö¼òÀúÔòÖ»ÓÐÃû¡¢ÐÕ¡¢µç×ÓÓʼþµØÖ·ÒÔ¼°Ò»¸ö¼ò¶ÌµÄ¹¤×÷¾Àú¡£ÕâÖÖ²îÒì×
Ïà¹ØÎĵµ£º
×òÌìÎÒÃÇʵÏÖÁËÒ»¸ö¼òµ¥µÄËÑË÷¹¦ÄÜ£¬½ñÌìÎÒÏëÁËһϣ¬Æäʵ»¹ÓпÉÒԸĽøµÄµØÖ·£¬ÈçÖ±½ÓÓÃIndex.php´úÌæSearch.php¡£
ÐÞ¸ÄIndex.phpÎļþ£¬ÐÞ¸ÄÒ»ÏÂËÑË÷±íµ¥
<!---ËÑË÷¿ò--->
<!--ÕâÀïµÄËùÓÐÖµÇ°Ãæ¼Óǰ׺“S_”ÒÔÇø·Ö-->
<form id="form1" name="form1" method="get" action="Index.php">
&n ......
PHPÓïÑÔ±¾ÉíÊDz»Ö§³Ö¶àÏ̵߳Ä. ×ܽáÁËÒ»ÏÂÍøÉϹØÓÚPHPÄ£Äâ¶àÏ̵߳ķ½·¨, ×ܵÄÀ´Ëµ, ¶¼ÊÇÀûÓÃÁËPHPµÄºÃ»ï°éÃDZ¾ÉíËù¾ßÓеĶàÏß³ÌÄÜÁ¦.
PHPµÄºÃ»ï°éÖ¸µÄ¾ÍÊÇLINUXºÍAPACHEÀ², LAMPÂï.
ÁíÍâ, ¼ÈÈ»ÊÇÄ£ÄâµÄ, ¾Í²»ÊÇÕæÕýµÄ¶àÏß³Ì. ÆäʵֻÊÇ¶à½ø³Ì. ½ø³ÌºÍÏß³ÌÊÇÁ½¸ö²»Í¬µÄ¸ÅÄî. ºÃÁË, ÒÔÏ·½·¨¶¼ÊÇ´ÓÍøÉÏÕÒÀ´µÄ.
1. ÀûÓÃLIN ......
¶ÔÓڽű¾°²È«Õâ¸ö»°ÌâºÃÏñÓÀԶûÍêûÁË£¬Èç¹ûÄã¾³£µ½¹úÍâµÄ¸÷ÖÖ¸÷ÑùµÄbugtraqÉÏ£¬Äã»á·¢ÏÖÓÐÒ»°ëÒÔÉ϶¼ºÍ½Å±¾Ïà¹Ø£¬ÖîÈçSQL
injection£¬XSS£¬Path Disclosure£¬Remote commands
executionÕâÑùµÄ×ÖÑ۱ȱȽÔÊÇ£¬ÎÒÃÇ¿´ÁËÖ®ºóµÄÓÃ;ÄѵÀ½ö½öÊÇ×¥È⼦?¶ÔÓÚÎÒÃÇÏë×öweb°²È«µÄÈËÀ´Ëµ£¬×îºÃ¾ÍÊÇÄÃÀ´Ñ§Ï°£¬¿ÉÊÇÍòÎï×¥¸ùÔ´£¬ÎÒà ......
ÔÚĬÈÏÇé¿öÏ£¬phpµÄÏîÄ¿ÐèÒª½¨ÔÚApache Group\Apache\htdocsĿ¼Ï²ſÉÒÔÕý³£·ÃÎÊ¡£µ±ÎÒÃÇÐèÒª×Ô¼º½¨Á¢Ò»¸ö²»ÔÚApache Group\Apache\htdocsĿ¼ÏµĹ¤×÷Çø¼äʱ£¬¾ÍÐèÒª¸Ä±äApacheµÄ·ÃÎÊÖ¸¶¨Â·¾¶¡£°²×°ºÃApache ºó£¬ÔÚApache Group\Apache\conf ÏÂÓÐÒ»¸öÎļþhttpd.conf£¬ËüÀïÃæ°üº¬×Å ......