首页  ç¼–辑  

Delphi编写网络程�的安全措施

Tags: /超级猛料/Network.网络通讯/其它/   Date Created:

---- DelphiµÄMIDAS¿Ø¼þΪ±àÐ´ÍøÂç³ÌÐòÌṩÁËÊ®·Ö·½±ãµÄÊֶΡ£ÀûÓÃÕâЩ¿Ø¼þ£¬¿ÉÒÔ±àд¾ÖÓòÍøÉϵĿͻ§»ú£¯·þÎñÆ÷Ìåϵ³ÌÐò£¬Ò²ÄÜ·½±ãµØÔÚInternetÉÏ´´½¨·ÖÉ¢´¦ÀíµÄÓ¦Óá£

---- ÍøÂç³ÌÐòµÄÒ»¸öÖØÒªÎÊÌâÊǰ²È«ÐÔ¿¼ÂÇ¡£Ò»Ð©Ãô¸ÐÊý¾ÝÔÚÍøÉÏ´«ËÍ£¬ºÜÓпÉÄܱ»ÈË·Ç·¨À¹½ØÒÔÔì³É²»±ØÒªµÄËðʧ¡£ÔÚʵ¼ÊµÄ±à³Ì¹ý³ÌÖУ¬ÎÒ²ÉÈ¡ÁËһЩÓÐЧµÄ·À·¶´ëÊ©£¬ÔÚ´Ë×÷Щ¼òµ¥µÄ½éÉÜ¡£

---- Ò»¡¢ Ô­Àí

---- Ŀǰ½øÐÐÊý¾Ý¼ÓÃܵķ½·¨ºÜ¶à£¬¶ÔÊý¾ÝµÄ±£»¤Æðµ½Ò»¶¨µÄ×÷Óᣵ«Èç¹û²ÉÓù̶¨µÄÃÜÔ¿»òÊÇÃÜÔ¿ËæÊý¾ÝÒ»Æð´«ËÍ£¬Ôò¾ù²»ÄÜ´ïµ½ÁîÈËÂúÒâµÄ±£ÃÜЧ¹û¡£ÔÚʵ¼ù¹ý³ÌÖУ¬ÎÒÃþË÷³öÁËÒ»Ìס°ÇëÇó£­Ó¦´ð¡±Ä£Ê½µÄËæ»úÃÜÔ¿·½·¨£¬¶ÔÃÜÂëºÍÊý¾ÝµÄ±£ÃÜЧ¹û¶¼ÁîÈËÊ®·ÖÂúÒâ¡£

---- µ±¿Í»§¶Ë³ÌÐòÆô¶¯²¢ÆóͼÓë·þÎñÆ÷³ÌÐò½¨Á¢Á¬½Óʱ£¬¿Í»§³ÌÐò´Ó·þÎñÆ÷¶ËÈ¡µÃÒ»¸öÓÉ·þÎñÆ÷³ÌÐò²úÉúµÄËæ»ú×Ö´®£¬ÏµÍ³½«ÒÔ´Ë×Ö´®ÎªÃÜÔ¿À´´«ËÍÓû§µÇ¼ÃÜÂëºÍÊý¾Ý¡£ÓÉÓÚÃÜÔ¿ÓÉ·þÎñÆ÷³ÌÐòËæ»ú²úÉú£¬¿Í»§Ã¿´ÎµÇ¼ʱÃÜÔ¿¾ù²»Ïàͬ£¬Òò´Ë´ó´ó¼õÉÙÁËÃÜÂë±»À¹½Øµ¼ÖÂÊý¾Ý±»ÇԵĿÉÄÜÐÔ¡£

---- ·þÎñÆ÷¶Ë¿ÉÒÔÔÚÔ¶³ÌÊý¾ÝÄ£¿éÖÐÒý³öÒ»¸ö×Ô¶¨Òå½Ó¿Ú£¬¸Ã½Ó¿Ú·µ»ØÒ»¸öËæ»ú×Ö´®¡£Ô¶³ÌÊý¾ÝÄ£¿éÒª¼Ç¼¸Ã×Ö´®×÷ΪºóÐø´¦ÀíµÄÃÜÔ¿¡£Ëæ»ú×Ö´®µÄ²úÉú·¨¿ÉÒÔ¶àÖÖ¶àÑù£¬×î¼òµ¥µÄ·½·¨ÊÇÓÃRandom()º¯Êý²úÉúÒ»¸öËæ»úÊýºóÔÙÓÉ´ËÊýÓÃFormat()º¯Êý»òIntToStr()²úÉúÒ»¸ö×Ö·û´®¡£

---- ¶þ¡¢ Óû§µÇ¼´ëÊ©

---- ΪÁË·ÀÖ¹³ÌÐò±»·Ç·¨µ÷ÊÔ´Ó¶øÐ¹Â¶ÃÜÂ룬±ØÐ뽫¿Í»§µÄµÇ¼ÐÅÏ¢ÔÚ·þÎñÆ÷¶Ë´¦Àí£¬Ò²¿ÉÒÔרÃÅÔö¼ÓÒ»¸ö°²È«²ã¸ºÔð¿Í»§µÄµÇ¼¡£¿Í»§µÄµÇ¼ÐÅÏ¢´¢´æÔÚ¿Í»§×ÊÁϱíÖУ¬°üÀ¨Óû§Ãû¡¢ÃÜÂ롢ȨÏÞµÈÐÅÏ¢¡£

---- ¿Í»§³ÌÐòµÇ¼ʱ£¬Ïȵ÷Ó÷þÎñÆ÷³ÌÐòµÄ½Ó¿Ú»ñµÃÃÜÔ¿×Ö´®£¬²¢ÓôËÃÜÔ¿¶ÔÓû§ÊäÈëµÄÓû§ÃûºÍÃÜÂë½øÐмÓÃܲ¢Ïò·þÎñÆ÷·¢Ë͵ǼÐÅÏ¢¡£¼ÓÃÜËã·¨¿ÉÒÔÊÇDESËã·¨»òÆäËüÓÐЧËã·¨¡£·þÎñÆ÷½Óµ½µÇ¼ÐÅÏ¢ºó£¬ÏÈÓÃÏÈǰ²úÉú²¢¼Ç¼µÄËæ»úÃÜÔ¿¶ÔµÇ¼ÐÅÏ¢½øÐнâÃÜ£¬ÔÙ½«½âÃܺóµÄÐÅÏ¢Óë´æ´¢µÄ¿Í»§×ÊÁϱíÖеÄÐÅÏ¢½øÐжÔÕÕ£¬´Ó¶øÅжϿͻ§ÐÅÏ¢ÊÇ·ñºÏ·¨ÒÔ¼°¸Ã¿Í»§ÏíÓеÄÊý¾ÝȨÏ޵ȡ£

---- ¸Ã¹ý³ÌµÄ¿Í»§¶Ë³ÌÐòÈçÏ£º

strKey:=myRemoteSever.GetKey();    

   {µ÷Ó÷þÎñÆ÷µÄ½Ó¿Ú»ñµÃËæ»úÃÜÔ¿}

UserName:=Ency(strUserName,strKey);  

 {¶ÔÓû§Ãû¼ÓÃÜ£¬Ency()Ϊ¼ÓÃÜËã·¨}

Password:=Ency(strPassword,strKey);  

 {¶ÔµÇ¼ÃÜÂë½øÐмÓÃÜ}

If myRemoteServer.LogIn(UserName,Password) then  {µÇ¼}

 Begin

{½øÐд¦Àí}

 End;

·þÎñÆ÷¶ËµÄµÇ¼¹ý³ÌLogIn()ÈçÏ£º

strUserName:=DeEncy(UserName,strKey);

{¶ÔÓû§Ãû½âÃÜ£¬DeEncy()Ϊ½âÃÜËã·¨}

strPassword:=DeEncy(Password,strKey);  

 {¶ÔµÇ¼ÃÜÂë½âÃÜ}

{²éѯÊý¾Ý¿â}

if (Pass) then

 Result:=true

Else

 Result:=false;

---- ҪעÒâµÄÊÇ£¬ÔÚ·þÎñÆ÷³ÌÐòºÍ¿Í»§³ÌÐòÖУ¬StrKey¾ùÓ¦¶¨ÒåΪȫ³Ì±äÁ¿¡£

---- ΪÁË·ÀÖ¹¿Í»§×ÊÁÏ±í±»³ÌÐòÍâ´ò¿ª´Ó¶øÐ¹Â¶ÃÜÂ룬¿ÉÒÔ¶Ô¿Í»§×ÊÁϽøÐÐÒ»¶¨µÄ¼ÓÃÜ´ëÊ©£¬ÀýÈçPARADOX±í¿ÉÒÔÌí¼ÓPassword£¬·þÎñÆ÷³ÌÐòÔÚ·ÃÎʿͻ§×ÊÁϱíʱÏÈÌṩ¸ÃPassword¡£

---- Èý¡¢ Êý¾Ý´«ËÍ

---- ÔÚÍøÂç³ÌÐòÖУ¬Ò»Ð©Ãô¸ÐÊý¾ÝÔÚÍøÉÏ´«ËÍʱ±ØÐë¼ÓÃÜ¡£DelphiµÄMIDAS»úÖÆÌṩÁËÊý¾Ý¼ÓÃܵÄ;¾¶£¬¿ÉÒÔÔÚÊý¾Ý´«Íù¿Í»§¶Ë֮ǰ¶ÔһЩ×ֶνøÐмÓÃÜ£¬Ò²¿ÉÒÔÔÚ½ÓÊÕµ½¿Í»§¶ËµÄ¸üÐÂÊý¾ÝÇëÇóºó¶ÔÀ´×Ô¿Í»§¶ËµÄÊý¾ÝµÄÏàÓ¦×ֶνøÐнâÃܺó²ÅÏòÊý¾Ý¿â½øÐиüС£ÎªÁ˴ﵽЩĿµÄ£¬¿ÉÒÔÔÚ·þÎñÆ÷³ÌÐòµÄÔ¶³ÌÊý¾ÝÄ£¿éÖмÓÈëÒ»¸öTprovider»òÊÇTdataSetProvider¶ÔÏ󣬲¢½«´Ë¶ÔÏóµÄDataSetÊôÐÔÖÃΪҪ´¦ÀíµÄÊý¾Ý¼¯¡£ÔÚTproviderµÄOnGetDataʼþÖмÓÈëÈçÏ´úÂ룺

 with DataSet do

 begin

   while not EOF do

   begin

     Edit;

     SensitiveData.AsString :=

     Ency(SensitiveData.AsString,strKey);

   {¶ÔÃô¸ÐÊý¾Ý¼ÓÃÜ}

     Post;

     Next;

   end;

 end;

---- ÒÔÉÏ´úÂë¿ÉÒÔ½«Ãô¸ÐÊý¾Ý¼ÓÃܺóÔÙËÍÍù¿Í»§³ÌÐò¡£

---- ͬÑù£¬ÔÚTproviderµÄOnUpdateDataʼþÖмÓÈëһЩ´¦Àí´úÂë±ã¿É¶Ô¿Í»§¶ËËÍÀ´µÄÊý¾Ý½øÐнâÃÜ¡£

---- ÒÔÉÏÖ»ÊǽéÉÜÁËÍøÂç³ÌÐò°²È«´ëʩʵÏÖµÄÒ»°ãÔ­Àí£¬ÔÚ´Ë»ù´¡ÉÏ£¬¿ÉÒÔÔö¼ÓÆäËü±£ÃÜ´ëÊ©£¬ÒÔ´ïµ½¸üºÃµÄ±£ÃÜЧ¹û¡£ÀýÈ磬¿Í»§³ÌÐò¿ÉÒÔÓÃÌØ¶¨µÄ¸¨ÖúÓ²¼þÉ豸À´Ôö¼Ó°²È«ÐÔ¡£ÔÚÖÇÄÜ¿¨Ó¦ÓóÌÐòÖУ¬¿Í»§³ÌÐòÔڵǼʱ²»½öÒªÇóÓû§ÊäÈëÓû§ÃûºÍÃÜÂ룬³ÌÐòͬʱ¼ì²éIC¶ÁдÆ÷ÖÐIC¿¨µÄÀàÐͼ°Ìض¨µÄÄÚÈÝ£¬ÕâÑù£¬¼ÈʹÃÜÂëй¶Á˲»»á±»ÈËðÃûµÇ¼¡£µ±È»£¬Èκΰ²È«´ëÊ©¶¼²»ÊǾø¶Ô°²È«µÄ£¬°²È«´ëÊ©»¹ÒªÓÐÑϸñµÄ±£ÃÜÖÆ¶È¼°Ê¹ÓÃÈËÔ±µÄ¸ß¶ÈµÄ±£ÃÜÒâʶ²ÅÄÜÕæÕýÆðµ½±£ÃÜ×÷Óá£