Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¼¼Çɺ;÷ÇÏ£º·À·¶SQL×¢Èë¹¥»÷

¡¾Ô­ÎĵØÖ·¡¿Tip/Trick: Guard Against SQL Injection Attacks
¡¾Ô­ÎÄ·¢±íÈÕÆÚ¡¿ Saturday, September 30, 2006 9:11 AM
SQL×¢Èë¹¥»÷ÊǷdz£ÁîÈËÌÖÑáµÄ°²È«Â©¶´£¬ÊÇËùÓеÄweb¿ª·¢ÈËÔ±£¬²»¹ÜÊÇʲôƽ̨£¬¼¼Êõ£¬»¹ÊÇÊý¾Ý²ã£¬ÐèҪȷÐÅËûÃÇÀí½âºÍ·ÀÖ¹µÄ¶«Î÷¡£²»ÐÒµÄÊÇ£¬¿ª·¢ÈËÔ±ÍùÍù²»¼¯Öл¨µãʱ¼äÔÚÕâÉÏÃæ£¬ÒÔÖÁËûÃǵÄÓ¦Ó㬸üÔã¸âµÄÊÇ£¬ËûÃǵĿͻ§¼«ÆäÈÝÒ×Êܵ½¹¥»÷¡£
Michael Sutton ×î½ü·¢±íÁËһƪ·Ç³£·¢ÈËÉîÊ¡µÄÌû×Ó£¬½²ÊöÔÚ¹«¹²ÍøÉÏÕâÎÊÌâÊǶàôµØÆÕ±é¡£ËûÓÃGoogleµÄSearch API½¨ÁËÒ»¸öC#µÄ¿Í»§¶Ë³ÌÐò£¬Ñ°ÕÒÄÇЩÒ×ÊÜSQL ×¢Èë¹¥»÷µÄÍøÕ¾¡£Æä²½ÖèºÜ¼òµ¥£º
ѰÕÒÄÇЩ´ø²éѯ×Ö·û´®µÄÍøÕ¾(ÀýÈ磬²éѯÄÇЩÔÚURLÀï´øÓÐ "id=" µÄURL)
¸øÕâЩȷ¶¨Îª¶¯Ì¬µÄÍøÕ¾·¢ËÍÒ»¸öÇëÇ󣬸ıäÆäÖеÄid=Óï¾ä£¬´øÒ»¸ö¶îÍâµÄµ¥ÒýºÅ£¬À´ÊÔͼȡÏûÆäÖеÄSQLÓï¾ä(ÀýÈ磬Èç id=6' )
·ÖÎö·µ»ØµÄ»Ø¸´£¬ÔÚÆäÖвéÕÒÏó“SQL” ºÍ“query”ÕâÑùµÄ´Ê£¬ÕâÍùÍù±íʾӦÓ÷µ»ØÁËÏêϸµÄ´íÎóÏûÏ¢(Õâ±¾ÉíÒ²ÊǺÜÔã¸âµÄ)
¼ì²é´íÎóÏûÏ¢ÊÇ·ñ±íʾ·¢Ë͵½SQL·þÎñÆ÷µÄ²ÎÊýûÓб»ÕýÈ·¼ÓÂë(encoded)£¬Èç¹ûÈç´Ë£¬ÄÇô±íʾ¿É¶Ô¸ÃÍøÕ¾½øÐÐSQL×¢Èë¹¥»÷
¶Ôͨ¹ýGoogleËÑѰÕÒµ½µÄ1000¸öÍøÕ¾µÄËæ»úÈ¡Ñù²âÊÔ£¬Ëû¼ì²âµ½ÆäÖеÄ11.3%ÓÐÒ×ÊÜSQL×¢Èë¹¥»÷µÄ¿ÉÄÜ¡£Õâ·Ç³££¬·Ç³£µØ¿ÉÅ¡£ÕâÒâζןڿͿÉÒÔÔ¶³ÌÀûÓÃÄÇЩӦÓÃÀïµÄÊý¾Ý£¬»ñÈ¡ÈκÎûÓÐhashed»ò¼ÓÃܵÄÃÜÂë»òÐÅÓÿ¨Êý¾Ý£¬ÉõÖÁÓÐÒÔ¹ÜÀíÔ±Éí·ÝµÇ½½øÕâЩӦÓõĿÉÄÜ¡£Õâ²»½ö¶Ô¿ª·¢ÍøÕ¾µÄ¿ª·¢ÈËÔ±À´ËµºÜÔã¸â£¬¶øÇÒ¶ÔʹÓÃÍøÕ¾µÄÏû·ÑÕß»òÓû§À´Ëµ¸üÔã¸â£¬ÒòΪËûÃǸøÍøÕ¾ÌṩÁËÊý¾Ý£¬Ïë×ÅÍøÕ¾Êǰ²È«µÄÄØ¡£
ÄÇôSQL×¢Èë¹¥»÷µ½µ×ÊÇÊ²Ã´ÍæÒ⣿
Óм¸ÖÖÇéÐÎʹµÃSQL×¢Èë¹¥»÷³ÉΪ¿ÉÄÜ¡£×î³£¼ûµÄÔ­ÒòÊÇ£¬Ä㶯̬µØ¹¹ÔìÁËSQLÓï¾ä£¬È´Ã»ÓÐʹÓÃÕýÈ·µØ¼ÓÁËÂë(encoded)µÄ²ÎÊý¡£Æ©È磬¿¼ÂÇÕâ¸öSQL²éѯµÄ±àÂ룬ÆäÄ¿µÄÊǸù¾ÝÓɲéѯ×Ö·û´®ÌṩµÄÉç»á±£ÏÕºÅÂë(social security number)À´²éѯ×÷Õß(Authors)£º
Dim SSN as String
Dim SqlQuery as String
SSN = Request.QueryString("SSN")
SqlQuery = "SELECT au_lname, au_fname from authors WHERE au_id = '" + SSN + "'"
Èç¹ûÄãÓÐÏóÉÏÃæÕâ¸öƬ¶ÏÒ»ÑùµÄSQL±àÂ룬ÄÇôÄãµÄÕû¸öÊý¾Ý¿âºÍÓ¦ÓÿÉÒÔÔ¶³ÌµØ±»ºÚµô¡£Ôõô»áÄØ£¿ÔÚÆÕͨÇéÐÎÏ£¬Óû§»áʹÓÃÒ»¸öÉç»á±£ÏÕºÅÂëÀ´·ÃÎÊÕâ¸öÍøÕ¾£¬±àÂëÊÇÏó


Ïà¹ØÎĵµ£º

SQLÎÞÏÞ·ÖÀà´æ´¢¹ý³ÌÕûÀí1

Óŵã:×ֶνÏÉÙ£¬ÓÐÔöɾ¸Ä²é¹¦ÄÜ£¬²»¹ý²éѯ̫Áýͳ¡£
ȱµã:
1.²»ËãÊÇÔÚºÜÕýµÄÎÞÏÞ·ÖÀà,ClassPathÕâ¸ö×ֶζ¨ÒåÏÞÖÆ¡£
2.Ö÷¼üCLASSID²»ÊÇ×ÔÔöµÄ£¬Ê¹ÓÃCODESMITHÅúÁ¿Éú³É¶à²ã¼Ü¹¹´úÂëÖлᵼÖ³ö´í¡£
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ArticleClass]') and OBJECTPROPERTY(id, N'IsUse ......

NHibernateÖ´ÐÐԭʼSQL´úÂëµÄ·½·¨Ð¡½á

ÔÚʹÓÃNHibernate¹ý³ÌÖо­³£»áʹÓõ½¸´ÔÓµÄsql²éѯ£¬µ«ÊÇʹÓÃhqlÓֱȽÏÂé·³µÄÇé¿öÏ£¬ÎÒÃÇÍùÍù¶¼»áÏëµ½²ÉÓÃԭʼµÄsqlÀ´Ö´ÐС£µ«ÊÇÈçºÎÀûÓÃNHibernateÀ´Ö´ÐÐsqlÄØ£¿ÎÊÌâÀ´ÁË£¬ÔÚNHibernateÖÐÒ²ÓÐAdoTemplateµÄ·½·¨¿ÉÒÔÖ´ÐÐsqlµÄ£¬µ«ÊÇÕâÀïÒª½éÉܵÄÊÇÁíÍâÒ»ÖÖ·½·¨£ºCreateSQLQuery¡£ÒÔϲ¿·ÖÀý×ÓÔ´×ÔÓÚÍøÂç¡£
ʵÀýÒ»£¨Ô´×ÔÓÚ ......

SQL·ÖÒ³ ÀûÓÃID´óÓÚ¶àÉÙºÍSELECT TOP·ÖÒ³

Óï¾äÐÎʽ£º¡¡ SELECTTOP10*
fromTestTable
WHERE(ID>
¡¡¡¡¡¡¡¡¡¡(SELECTMAX(id)
¡¡¡¡¡¡¡¡from(SELECTTOP20id
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡fromTestTable
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ORDERBYid)AST))
ORDERBYID
SELECTTOPÒ³´óС*
fromTestTable
WHERE(ID>
¡¡¡¡¡¡¡¡¡¡(SELECTMAX(id)
¡¡¡¡¡¡¡¡from(SELECTTOPÒ³´óС*Ò³Êýid
¡¡¡¡¡ ......

SQL Server Óï¾ä²éѯÊÖ²á

½¨±í£º
CREATE TABLE  [DB.dbo].tableName
(Stud_id int CONSTRAINT  constraintName1  not null primary key,
 Name nvarchar(5) not null,
 Birthday datetime,
 Gender nchar(1),
 Telcode char(12),
 Zipcode char(6) CONSTRAINT constraintName2 CHECK(zipcode like [ ......

SQLÖг£Óú¯ÊýµÄÕûÀí

¶ÔÓÚsqlÖеĺ¯Êý¿ÉνÊǶàµÄ²»Ê¤Ã¶¾Ù£¬±¾ÎÄ´Ó³£Óú¯ÊýµÄ½Ç¶È¶ÔÆäº¯Êý½øÐÐ×ܽ᣺1¡¢ÈÕÆÚºÍʱ¼äº¯Êý2¡¢×Ö·û´®º¯Êý3¡¢ÏµÍ³º¯ÊýÁ÷³Ì¿ØÖÆÓï¾ä
1¡¢  ÈÕÆÚºÍʱ¼äº¯Êý
¶ÔÓÚÈÕÆÚº¯ÊýÎÒÃÇ¿ÉÒÔ·ÖΪ2СÀà½øÐзÖÎö´¦Àí£¬
A¡¢ ÈÕÆÚµÄÕûÌå´¦Àíº¯Êý£¬¾ßÌåµÄº¬ÒåºÍÓï·¨ÈçÏÂËùʾ£º
DATEADD(datepart,number,date)
µÚÒ»¸ö²ÎÊý˵Ã÷ÒªÌí ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ