ç¬?5 ç« ä?æ¥?

¿ï¾ÜÃD


²µªÃD

  1. ½Ð¦CÁ|¤TÂI¡A»¡©ú±Nºô­¶¸ê®ÆÀx¦s©ó¸ê®Æ®wªº¦n³B¡C
  2. ­nÅý ASP µ{¦¡½X©M¸ê®Æ®w·¾³q¡A­º¥ý­nª¾¹D¸ê®Æ®w©Ò¦b¦ì¸m¥H¤Î¨ä¬ÛÃö¸ê°T¡A¦³¨âºØ¤èªk¥i¥H¹F¦¨¦¹¥ô°È¡A½Ð²³æ»¡©ú¡A¨Ã¸ÑÄÀ³o¨â­Ó¤èªkªºÀu¯ÊÂI¡C
  3. ODBC ªº¥þ¦W¬°¦ó¡H·N¸q¬°¦ó¡H
  4. SQL ªº¥þ¦W¬°¦ó¡H¦¹µ{¦¡»y¨¥ªº¥\¯à»P¯S©Ê¡H
  5. ¦b Access ¸ê®Æ®w¤¤¡Atext Äæ¦ì©M memo Äæ¦ì¦³¤°»ò­«­n®t²§¡H
  6. ¦b Access ³nÅ餺°õ¦æ SQL «ü¥O®É¡A¦p¦ó¤ñ¹ï¤@­Ó¦r¤¸¡H¦p¦ó¤ñ¹ï¦h­Ó¦r¤¸¡H
  7. ¦b ASP µ{¦¡½X¤º°õ¦æ SQL «ü¥O®É¡A¦p¦ó¤ñ¹ï¤@­Ó¦r¤¸¡H¦p¦ó¤ñ¹ï¦h­Ó¦r¤¸¡H
  8. ¦³Ãö©ó¡u¸ê®ÆÁô½X¡v¡]SQL Injection¡^¡G
    1. ½Ð²³æ»¡©ú¡]¤£¶W¹L¤­¥y¡^¤°»ò¬O¡u¸ê®ÆÁô½X¡v¡H
    2. ½Ð²³æ»¡©ú¡]¤£¶W¹L¤­¥y¡^¦p¦óÁקK³o­Ó°ÝÃD¡H
  9. ¹ï©ó¤@¯ëªº±b¸¹±K½X»{ÃÒ¡A¦p¦ó¨Ï¥Î¸ê®ÆÁô½Xªº¤è¦¡¨Ó¶i¦æÀb«È¥ô°È¡H
  10. °²³]¦³¤@­Ó¸ê®Æ®w¥]§t¨â­Ó¸ê®Æªí¡G
    • Player ¥]§t²y­ûªº¸ê®Æ¡A¨ä¤¤ TeamID ¬O²y­û©ÒÁõÄݪºÄx²y¶¤¥N¸¹¡]¸ü©ú¦b Team ¸ê®Æªí¡^¡APercentage ¬O§ëÄxªº©R¤¤²v¡C
    • Team ¥]§tÄx²y¶¤ªº¸ê®Æ¡A¨ä¤¤ WinNo ¬O¥»©uªºÄ¹²y¦¸¼Æ¡C
    ¬ÛÃö¤º®e¦p¤U¡G
    ¸ê®Æ®w "example/database/basketball.mdb"
    ¸ê®Æªí "Player" ªº¤º®e ¸ê®Æªí "Team" ªº¤º®e
    ID NickName Name TeamID Percentage
    jean §d§Ó»Ê 38.25 
    jones ±i¯¯¹Å 49.77 
    ben ³¯§¶±l 50.26 
    asser ªL´f®S 37.22 
    window §õ©y´­ 36.67 
    roger ±i´¼¬P 25.88 
    cosh ³\¤å»¨ 70.98 
    banny ¬xÄPµ¾ 88.97 
    shyba ªô¤¤¤H 67.45 
    10 batty ·¨Âz¦p 65.55 
    11 joey ³\¹Å®Ê 47.65 
    12 roland §d·ç¤d 55.87 
    13 sony ªL¹|µØ 54.77 
    14 beball ¸­¨Î¼z 33.33 
    15 gavins ªL¬F·½ 55.65 
    16 jojo ³¯«T³Ç 44.65 
    17 jtchen ³¯¦¿§ø 48.76 
    18 Gao °ª¦W´­ 67.88 
    19 Wayne ³¯´¼°¶ 65.87 
    20 chingz ³¯´¸ 57.28 
    ID Name WinNo
    ¥x¥_¶¤ 12 
    ·s¦Ë¶¤ 
    ¥x¤¤¶¤ 10 
    «n§ë¶¤ 12 
    ¥x«n¶¤ 17 
    °ª¶¯¶¤ 16 
    ¼ê´ò¶¤ 11 

    ½Ð®Ú¾Ú¦¹¸ê®Æ®w¼g¥X²Å¦X¤U¦C»Ý¨Dªº³Ì²³æ SQL «ü¥O¡G

    1. ©Ò¦³²y¶¤¸ê®Æ
    2. ©Ò¦³²y¶¤¸ê®Æ¡A¦ý¥u§ì«e¤Tµ§
    3. ºï¸¹¬° gavins ªº²y­û©m¦W¤Î©R¤¤²v
    4. ¶¤¦W¥H¡u¥x¡v¶}ÀYªº²y¶¤¸ê®Æ
    5. ¡u©m³¯¥B¦W¦r¦³¤T­Ó¦r¡vªº²y­û©m¦W¤Î©R¤¤²v
    6. ¡u³Ó³õ¼Æ¤j©ó10¡vªº²y¶¤¦WºÙ¤Î¨ä³Ó³õ¼Æ
    7. ¡u³Ó³õ¼Æ¤j©ó10¡vªº²y¶¤¦WºÙ¤Î¨ä³Ó³õ¼Æ¡A¨Ã®Ú¾Ú³Ó³õ¼Æ¥Ñ¤j¨ì¤p±Æ¦C
    8. ¡u²y¶¤¥N½X¬°5¡vªº²y­û©R¤¤²v±Æ¦æº]
    9. ¨C¤@¶¤ªº²y­û©R¤¤²v±Æ¦æº]
    10. ¡u³Ó³õ¼Æ¤j©ó10¡vªº²y¶¤Á`¼Æ
    11. ©Ò¦³²y­ûªº³Ì°ª©R¤¤²v
    12. ¨ã¦³³Ì°ª©R¤¤²vªº²y­û¸ê®Æ
    13. ¨C­Ó²y¶¤ªº²y­û¤H¼Æ¤Î¥­§¡©R¤¤²v
    14. ¨C­Ó²y¶¤ªº²y­û¤H¼Æ¡A¦ý¥uÅã¥Ü²y­û¤H¼Æ¤j©ó 2 ¦ìªº¸ê®Æ
    15. ¥x¥_¶¤ªº²y­û¸ê®Æ
    16. °ª¶¯¶¤©M¥x¤¤¶¤ªº®g¤â±Æ¦æº]
    17. ¨C­Ó²y¶¤ªº¬ÛÃö²Î­p¼Æ¦r
  11. °²³]§Ú­Ì¦³¤@­Ó¸ê®Æ®w¡A¤º§t¤T­Ó¸ê®Æªí¡A¥L­ÌªºÃöÁp¹Ï¦p¤U¡G

    ½Ð¼g¥X³Ì²¼äªº SQL «ü¥O¡A¥H°õ¦æ¥H¤U¬d¸ß¡C

    1. ¦C¥X©Ò¦³ªº°ê»yºq¦±
    2. ©Ò¦³ºq¦±¦@¥]§t­þ´XºØ¤£¦P»y¨¥¡]¤£¥i­«½Æ¡^
    3. ºq¦±¦@¥]§t´XºØ¤£¦P»y¨¥
    4. °Û¹L¥x»yºqªººq¬P¡]¤£¥i­«½Æ¡^

µ{¦¡ÃD

½Ð¨Ï¥Î¥»³¹©Ò¾Ç¨ìªº JavaScript/JScript µ{¦¡§Þ¥©¡]¥Î©ó¦øªA¾¹ºÝ¡^¨Ó§¹¦¨¤U¦C§@·~¡G
  1. (***) §Q¥ÎSQL±q¸ê®Æ®w§ì¸ê®Æ: ¥»ÃD§@·~ªº¥Øªº¡A¬OÅý¦P¾Ç¼ô±x Access ¸ê®Æ®wªº¨Ï¥Î¥H¤Î SQL ªº»yªk¡A¨Ã±N SQL ©R¥O©Ò¦^¶Çªº¸ê®ÆÅã²{¦bºô­¶¤W¡C©Ò¥Î¨ìªº¸ê®Æ®w¬O example/databsae/song.mdb¡A¦@¥]§t¤T­Ó¸ê®Æªí (Singer, Song, Midi)¡A ªí©Mªí¤§¶¡¦³ÃöÁp©Ê¦s¦b¡A¦¹ÃöÁp©Ê¥i¥Ñ¡u¤u¨ã/¸ê®Æ®wÃöÁp¹Ï¡v¨ÓÅã¥Ü¡C ¨C­ÓªíªºÄæ¦ì¦WºÙÀ³¥i±æ¤å¥Í¸q¡A ¨ä¤¤ SSN ¥Nªí System Serial Number¡A¬O¨Cµ§¸ê®Æ¦b¸ê®Æªí¤¤¿W¤@µL¤Gªº½s¸¹¡C§Aªº¤u§@¡A´N¬O²£¥Í¤@­Óºô­¶ selectQuery01.asp¡A¥]§t¤U¦C³sµ²¡A·í¨Ï¥ÎªÌÂI¿ï¬Y¤@­Ó³sµ²®É¡A§Aªºµ{¦¡½X´N·|¦Û°Ê±q¸ê®Æ®w¤¤¨ú¥X¤U¦C¸ê®Æ¡A¨ÃÅã¥Ü¦b¥t¤@­Óºô­¶¤W¡C
    1. ºq¦±¦@¥]§t­þ´XºØ¤£¦P»y¨¥
    2. °Û¹L¥x»yºqªººq¬P
    3. ¥î¨Õ©Ò°Ûªº¥x»yºq
    4. ¥î¨Õ©Ò°Ûªº°ê»yºqªºÁ`¼Æ
    5. °Û¹L¥x»yºq¦±ªº¤kÃÀ¤H¤Î©Ò°Ûªº¥x»yºq
    6. ±i¦t©Ò°Ûªº°ê»yºq¤Î¨ä Midi Àɮתº¸ô®|
    7. ±i¦t©Ò°Ûªº°ê»yºqªº Midi ÀɮתºÁ`¼Æ
    8. ºq¦±¦@¥]§t´XºØ¤£¦P»y¨¥
    9. Song ¤¤­«½Æªººq¦W
    10. ¦³ºq¦W«o¨S¦³ Midi Àɪººq¦±¸ê®Æ¡]´£¥Ü¡G¦¹ÃD·|¥Î¨ì Outer Join¡^
    11. ºq¦±¤¤¦³¡y·R¡z¡B¡y«ë¡zªÌ SELECT Song.Name FROM Song WHERE (Song.Name Like '%·R%') Or (Song.Name Like '%«ë%');
    12. ¥¼¦¬¿ý¥ô¦óºq¦±¤§¹ÎÅé¡]»Ý¥Î¨ì left/right join¡^ SELECT Singer.Name FROM Singer LEFT JOIN Song ON Singer.SSN = Song.SingerSSN WHERE (Singer.Type='¹ÎÅé') AND (Song.SSN Is Null);
    13. ºq¦±¦W¦³­^¤å¦r¤§ºq¦±¸ê®Æ¡A¤Î¨ä¹ïÀ³ªººq¤â SELECT Song.Name, Singer.Name FROM Singer, Song WHERE (Song.SingerSSN=Singer.SSN) AND (Song.Name Like '%[a-zA-Z]%');
    14. ºq¦±¦WºÙ¬O¥|­Ó¦rªººq¦±¡A¤Î¨ä¹ïÀ³ªººq¤â SELECT Song.Name, Singer.Name FROM Song, Singer WHERE (Singer.SSN=Song.SingerSSN) AND (Song.Name Like '____');
    15. ºq¤â¤Î°Û¹Lªººq¦±¼Æ¡]½Ð«ö·Ó°Û¹Lªººq¦±¼Æ±Æ¦W¡^ SELECT Singer.Name, Count(*) AS °Û¹Lªººq¦±¼Æ FROM Song, Singer WHERE (Singer.SSN=Song.SingerSSN) GROUP BY Singer.Name ORDER BY Count(*) DESC;
    16. ¨C¦ìºq¤â¤À§O¦b¦UºØ»y¨¥¤¤°Û¹L´X­ººq SELECT Singer.Name, Song.Language, Count(*) AS ºq¦±¼Æ FROM (SELECT Singer.Name, Song.Language FROM Song, Singer WHERE Song.SingerSSN = Singer.SSN) GROUP BY Singer.Name, Song.Language;
    17. ÂùÁn±aºq¤â¡]¦³°Û¨âºØ»y¨¥¥H¤Wªººq¤â¡^ SELECT ©m¦W, count(*) as »y¨¥¼Æ¶q FROM (SELECT Singer.Name as ©m¦W, Song.Language as »y¨¥ FROM Singer,Song where(Song.SingerSSN=Singer.SSN) GROUP BY Singer.Name, Song.Language) GROUP BY ©m¦W HAVING count(*)>1
    18. ¹ÎÅéºq¤â¤Î°Û¹Lªººq¦±¼Æ¡]½Ð«ö·Ó°Û¹Lªººq¦±¼Æ±Æ¦W¡^ SELECT singer.Name, Count(*) AS ºq¦±¼Æ¥Ø FROM singer, song WHERE (singer.SSN=song.SingerSSN) AND (singer.Type='¹ÎÅé') GROUP BY singer.Name ORDER BY Count(*) DESC;
    19. ¥H"·R"¶}ÀYªº°ê»yºq SELECT Song.Name AS ºq¦W, Singer.Name AS ºq¤â FROM Song, Singer WHERE (Song.SingerSSN=Singer.SSN) AND (Song.Name Like '·R*') AND (Song.Language='°ê»y');
    20. ¨Ì»y¨¥¡BºØÃþ¡B¨k¤k¨Ó¤ÀÃþªº¦U¶µºq¦±¼Æ¥Ø SELECT Song.Language, Singer.Type, Singer.Gender, Count(*) AS ºq¦±Á`¼Æ FROM Singer INNER JOIN Song ON Singer.SSN = Song.SingerSSN GROUP BY Song.Language, Singer.Type, Singer.Gender;
    21. MIDIª©¥»³Ì¦hªººq¦± SELECT TOP 1 Song.Name AS ª©¥»³Ì¦hªººq¦± FROM Song INNER JOIN Midi ON Song.SSN = Midi.SongSSN GROUP BY Song.Name HAVING (((Count(*))>1)) ORDER BY Count(*) DESC;
    22. ¤@¦±ºq¤â SELECT Singer.Name FROM Singer INNER JOIN Song ON Singer.SSN = Song.SingerSSN GROUP BY Singer.Name HAVING (Count(Song.Name)=1);
    23. ©m¦W¬°¨â­Ó¦rªººq¤â select distinct name from singer where name like '__'
    ª`·N¨Æ¶µ¡G
    • ¥i¥H¨Ï¥Î listQueryResult() ¨ç¼Æ¨Ó¶i¦æ¸ê®Æ¦Cªí¡C
    • ¸ê®Æ®w¤¤¡u¬d¸ß¡vªº³¡¥÷¡A¥]§t«e¤T¤pÃD§@·~­n¥Î¨ìªº SQL ©R¥O¡A¦P¾Ç¥i°Ñ¦Ò¤§¡C
    • ©Ò¦³ªº§@·~¡A³£¥i¥H¸g¥Ñ SQL ©R¥O¨Ó¨ú¥X©Ò­nªº¸ê°T¡C
    • §Ú­Ì¥Îªº¸ê®Æ®w¬O Office 2000 ¤¤ªº Access¡A¦pªG§AÁÙ¦b¥Î Office 97¡A¨º´N¸Ó¤É¯Å¤F¡C
    • §U±Ð¦b´ú¸Õ§Aªºµ{¦¡®É¡A·|¥H¥t¤@­Ó¸ê®Æ®w¡]Äæ¦ì¬Û¦P¦ý¸ê®Æ¤£¦P¡^¨Ó¶i¦æ´ú¸Õ¡C
  2. (***) ³]­p¦³¥Îªº¬d¸ß: ¦pªG§A°µ¹L¤W¤@ÃD¡AÀ³¸Ó´N·|¹ï SQL «ü¥O¤Î example/databsae/song.mdb ¸ê®Æ®w¦³°ò¥»ªºÁA¸Ñ¡C½Ð©µÄò¤WÃDªº¬d¸ß¤Î¬ÛÃöªº SQL «ü¥O¡A³Ð³y¥X¤­­Ó§ó½ÆÂø¥B¡u¦³·N¸q¡vªº¬d¸ß¡A¨Ã±N¦¹¬d¸ßªº¤¤¤å·N¸q¤Î¬ÛÃöªº SQL «ü¥O¦C¦b¤@­Ó ASP ºô­¶ selectQuery02.asp¡A·í¨Ï¥ÎªÌÂI¿ï®É¡A¥i±N¬d¸ßµ²ªGÅã¥Ü¦b¥t¤@­Ó·s¶}±Òªºµøµ¡¡C¡]¥»ÃD¨Ã¨S¦³¼Ð·Çµª®×¡A½Ð¦U¦ìºÉ¶qµo´§³Ð·N¡I¡^
  3. (***) SQL »yªk¦b MS Access »P MS SQL Server ªº®t²§: ÁöµM»¡ SQL ¬O¤@­Ó¼Ð·Ç¤Æªº¸ê®Æ®wµ{¦¡»y¨¥¡A¦ý¬O¦b¤£¦Pªº³nÅé¡A¤]·|¦³¨Ç®t²§¡C¥»§@·~³Â·Ð¦U¦ì¦P¾Ç¨ì Google ¤j®v·j´M¤@¤U¡A¤ñ¸û¬Ý¬Ý SQL »yªk¦b MS Access »P MS SQL Server ³o¨â­Ó¸ê®Æ®w³nÅ骺®t²§¡A¨Ã¥H¦Cªí¤è¦¡¡A³v¤@»¡©ú¨ä®t²§©Ò¦b¤Î¥i¯à³y¦¨ªº¼vÅT¡C
  4. (***) ¥H¸ê®Æ®w³]­p¯d¨¥ª©: ¥»§@·~¤§¥Øªº¬OÅý¦P¾Ç§ó¶i¤@¨BÁA¸Ñ ASP »P¸ê®Æ®wªº¾ã¦X¡A¨Ã¯à¹ï¸ê®Æ®wªº¸ê®Æ¶i¦æ¦UºØ³B²z¡A§t¦Cªí¤Î·s¼W¡C¥»§@·~ªº¦¨«~¬O¤@­Ó Web ¯d¨¥ª©¡A§A¥²¶·±qŪªÌ¡]©Î¦øªA¾¹¡^¨ú±o¤U¦C¸ê°T¡A¨Ã±N¤§Åã¥Ü¦b§Aªº¯d¨¥ª©¡G
    • ¥Ñ¨Ï¥ÎªÌ¿é¤J¡G
      • ¶Q©m¤j¦W
      • ©Ê§O
      • ¥ì´A¨à
      • ­Ó¤Hºô§}
      • ¯d¨¥¤º®e

    • ¥Ñ ASP µ{¦¡½X¦Û°Ê§ì¨ú¡G
      • µn¿ý®É¶¡©M¤é´Á
      • ³X«È IP (¬O¯u¥¿ªº IP¡A¦Ó«D¥N²z¦øªA¾¹ªº IP¡A¥i¥Ñ Request.ServerVariables("REMOTE_ADDR") ©Î Request.ServerVariables("HTTP_X_FORWARDED_FOR") ¨Ó¨ú±o¡C)
      • ³X«È©Ò¥ÎªºÂsÄý¾¹ (¥Ñ Request.ServerVariables("HTTP_USER_AGENT"))
      • ¨Ó·½ºô­¶ (¥Ñ Request.ServerVariables("HTTP_REFERER"))

    ª`·N¨Æ¶µ¡G

    • ¥»¦¸§@·~»Ý¥Î ASP §¹¦¨¡]§A¥i¥H¥ô¿ï JScript ©Î VBScript ©Î PerlScript¡^¡A¦ý¤£¥i¥H¨Ï¥Î CGI ¨Ó§¹¦¨¡C
    • ¯d¨¥ª©¸ê®Æ¥²¶·¦s¦b¸ê®Æ®w¤§¤¤¡Aºô­¶¥²¶·¨ã³Æ¡u·s¼W¡v¤Î¡u¦Cªí¡vªº¥\¯à¡C
    • ¥²¶·¨¾½d§O¤H¯d¤U¤@¨Ç¶Ã¤C¤KÁVªº¼ÐÅÒ¡A³y¦¨ºô­¶®æ¦¡ªº²V¶Ã¡C¡]¥i¨Ï¥Î Server.HTMLEncode() ¨ç¼Æ¡C¡^
    • ¤£¶·­n¹ï©m¦W¤Î¯d¨¥¶i¦æ°ò¥»ªºªí³æÅçÃÒ¡C
    • §Ú¬Û«H§A¥i¥H¦bºô¸ô¤W§ä¨ì«Ü¦h¬ÛÃö½d¨Ò¤Î­ì©l½X¡C³o¸Ì¬O¤@­Ó¤£§¹¥þªº½d¨Ò¡G
      • ³o¸Ì¦³¤@­Ó¥b¦¨«~¡A½Ð¦h¥[§Q¥Î¡A¨ÃÅwªï´ú¸Õ¡I
      • ©Ò¦³ªºµ{¦¡½X³£©ñ¦b guestBook.zip¡A½Ð¦h¥[§Ûŧ¡I
  5. (***) ¥H¸ê®Æ®w³]­p¯d¨¥ª©¤§¤G: °£¤Fº¡¨¬«e¤@ÃDªº­n¨D¥~¡A§Aªººô­¶Áٻݭn¨ã³Æ¤U¦C¥\¯à¡G
    1. ¥[¤W¯d¨¥ºÞ²z¥\¯à¡G¥iÅýºÞ²z­û¤£»Ý¶}±Ò¸ê®Æ®w¡Aª½±µ¸g¥Ñºô­¶¿é¤J±K½X«á¡A§Y¥i¦³¡u­×§ï¡v¤Î¡u§R°£¡vªºÅv­­¡C¡]¶i¦æ­×§ï®É¡A¥²¶·§â­ì¸ê®Æ¦C¥X¦bªí³æ¤§¤¤¡C¡^
    2. ¦Û°Ê¤À­¶¥\¯à¡A·í¯d¨¥¼Æ¶qÃe¤j®É¡A¥i¤¹³\¨Ï¥ÎªÌ¿ï¾Ü¨Ï¥Î¤À­¶¥\¯à¨ÓÂsÄý¯d¨¥¡A ¨Ã¥i¤¹³\¨Ï¥ÎªÌ³]©w¨C¤@­¶¯d¨¥ªº¼Æ¥Ø¡C
    3. ¥[¤J·j´M¥\¯à¡A¤¹³\¨Ï¥ÎªÌ§ä¥X§t¦³·j´M¦r¦êªº¯d¨¥¸ê®Æ¡C¬°Â²¤Æ°_¨£¡A¥i¥H¥u¨Ï¥Î¤@­Ó·j´M¦r¦ê¡A´M§ä©Ò¦³ªºÄæ¦ì¡C¡]¬°«K©ó¹î¬Ýµ²ªG¡A«Øij¦b¦^¶Ç¤º®e¤¤±N²Å¦Xªº¦r¦êÅܦâ¡C¡^
    4. §Q¥Î cookie ¥\¯à°O¿ý¨Ï¥ÎªÌ¯d¨¥®É©Òµn¿ýªº°ò¥»¸ê®Æ¡A ¨Ã©ó¤U¦¸¨Ï¥ÎªÌ±ý¯d¨¥®É¡A¥Ñ¨t²Î¹w¥ý±N¸ê®Æ©ñ¸m©ó input Äæ¦ì¤¤¡C
  6. (***) ¥H¸ê®Æ®w³]­p½u¤W³q°T¿ý: ¥»§@·~¤§¥Øªº¬OÅý¦P¾Ç§ó¶i¤@¨BÁA¸Ñ ASP »P¸ê®Æ®wªº¾ã¦X¡A¨Ã¯à¹ï¸ê®Æ®wªº¸ê®Æ¶i¦æ¦UºØ³B²z¡A§t¬d¸ß¡B·s¼W¡B­×§ï¡B§R°£¡C ¥»§@·~ªº¦¨«~¬O¤@­Ó Web ªº­Ó¤H³q°T¿ý¡A§A¥²¶·±q¨Ï¥ÎªÌ¡]À³¸Ó´N¬O§A¦Û¤v¡^¨ú±o¤U¦C¸ê°T¡A¦s¤J¸ê®Æ®w¡A¨Ã±N¤§Åã¥Ü¦b§Aªº³q°T¿ý¡G
    • ¥Ñ¨Ï¥ÎªÌ¿é¤JªºÁpµ¸¤H¸ê°T¡G
      • ¶Q©m¤j¦W
      • ©Ê§O
      • ¥ì´A¨à
      • ºô§}
      • ¹q¸Ü
      • ¤j­ô¤j
      • ¦a§}
      • Ãþ§O¡]¨Ò¦p°ª¤¤¦P¾Ç¡B¿Ë±­¡BªÀ¹Î¦P¾Çµ¥¡^

    • ¥Ñ ASP µ{¦¡½X¦Û°Ê§ì¨ú¡G
      • µn¿ý®É¶¡©M¤é´Á
      • ³X«È IP (¬O¯u¥¿ªº IP¡A¦Ó«D¥N²z¦øªA¾¹ªº IP¡A¥i¥Ñ Request.ServerVariables("REMOTE_ADDR") ©Î Request.ServerVariables("HTTP_X_FORWARDED_FOR") ¨Ó¨ú±o¡C)
      • ³X«È©Ò¥ÎªºÂsÄý¾¹ (¥Ñ Request.ServerVariables("HTTP_USER_AGENT"))
      • ¨Ó·½ºô­¶ (¥Ñ Request.ServerVariables("HTTP_REFERER"))

    ½Ðª`·N¡G

    • ¥»¦¸§@·~»Ý¥Î ASP §¹¦¨¡]§A¥i¥H¥ô¿ï JScript ©Î VBScript ©Î PerlScript¡^¡A¦ý¤£¥i¥H¨Ï¥Î CGI ¨Ó§¹¦¨¡C
    • µL½×Åã¥Ü©Î­×§ï³q°T¿ýµ¥¡A³£»Ý¸g¹L±K½X»{ÃÒ¡C
    • ¥²¶·¨ã¦³¥|¤j¥\¯à¡G¦Cªí¡B·s¼W¡B­×§ï¡B§R°£¡C¡]¶i¦æ­×§ï®É¡A¥²¶·§â­ì¸ê®Æ¦C¥X¦bªí³æ¤§¤¤¡C¡^
    • ¤£»Ý­n¶i¦æªí®æÅçÃÒ¡C¡]¦Û¤v¿é¤JªºªF¦è¡A¦Û¤v­t³d´N¥i¥H¤F¡I¡^
    • §Ú¬Û«H§A¥i¥H¦bºô¸ô¤W§ä¨ì«Ü¦h¬ÛÃö½d¨Ò¤Î­ì©l½X¡C³o¸Ì¬O¯d¨¥ª©ªº½d¨Ò¡A¨ä¥\¯à©M­Ó¤H³q°T¿ý«D±`±µªñ¡G
      • ³o¸Ì¦³¤@­Ó¥b¦¨«~¡A½Ð¦h¥[§Q¥Î¡A¨ÃÅwªï´ú¸Õ¡I
      • ©Ò¦³ªºµ{¦¡½X³£©ñ¦b guestBook.zip¡A½Ð¦h¥[§Ûŧ¡I
  7. (***) ¥H¸ê®Æ®w³]­p½u¤W³q°T¿ý¤§¤G: °£¤Fº¡¨¬«e¤@ÃDªº­n¨D¥~¡A§Aªººô­¶Áٻݭn¨ã³Æ¤U¦C¥\¯à¡G
    • ¤À­¶¥\¯à:¡G·í³q°T¿ý¸ê®Æ¼Æ¶qÃe¤j®É¡A¥i¤¹³\¨Ï¥ÎªÌ¿ï¾Ü¨Ï¥Î¤À­¶¥\¯à¨ÓÂsÄý¯d¨¥¡C
    • ±Æ§Ç¥\¯à¡G¥i®Ú¾Ú¤£¦PªºÄæ¦ì¡]¦pÃþ§O¡B©Ê§O¡B©m¦Wµ¥¡^¨Ó¶i¦æ±Æ§ÇÅã¥Ü¡C
    • ·j´M¥\¯à¡G¤¹³\¨Ï¥ÎªÌ®Ú¾Ú¤£¦PÄæ¦ì¨Ó¶i¦æ·j´M¡C

JScript µ{¦¡³]­p»PÀ³¥Î¡G¥Î©ó¦øªA¾¹ºÝªº ASP Àô¹Ò