UniGui 的 https 設置、圖形驗證碼,其它


UniGui  的部署 及 https 設置:

1、如何 支持外網通過 https 訪問,並增強安全性?

     參考  《uniGUI for C++ builder下如何實現https加密瀏覽》 https://blog.csdn.net/dlboy2018/article/details/81037093

      在UniGUI程序下如何實現 https 加密訪問,該部分內容在FMSOFT的幫助文檔里有詳細解釋,幫助文檔在 unigui 的安裝目錄下C:\Program Files (x86)\FMSoft\Framework\uniGUI\Docs, 在 uniGUI.chm  的開發者指導(Delevoper‘s Guide \ Web Deployment \ SSL Configuration)有專門一節描述 。

        下面僅描述 自己創建證書。比如使用 OPENSSL 自己創建證書。參考  https://slproweb.com/products/Win32OpenSSL.html   (外購權威證書,可參考https://www.chinassl.net/)。

         Unigui  僅自行使用,采用編譯為 獨立的 Win exe程序 或者服務。按手冊說明,主要是提供三個文件:root.pem、cert.pem、key.pem

          並采用 pem格式。Pem 是人類可讀的 base64 ASCII 文件,可在編輯器中打開。一個 pem 文件可包含多個 certificate.。為了在UniGui中能用,每個 pem file 須只能有一個 certificate。

 ---------------------------------------------------       

         1) 產生一個 Certificate Signing Request ( CSR )文件,方法有很多, 使用 OpenSSL 工具 ,需要 去 https://slproweb.com/products/Win32OpenSSL.html  下載並安裝。  使用 管理員(Administrator)權限啟 cmd 命令行,發出下列指令:

             openssl  req  -new  -newkey  rsa:2048 -nodes  -keyout key.pem    -out  req.csr

 

 

     Unigui  在 ServerModule 對 其進行設置,有 SSL 屬性的相關項,可以設置,首先  Enabled 必須 鈎上。

         SSLPort : 端口,默認值 0,可以設置為 443  或者 其它可用的;

         SSLPassword :  

         SSLOptions 的其它屬性:

            RootCertFile

            CertFile

            KeyFile

 

            CiperList

            DHParamsFile            

            Mode   (ISAPI DLLs  專用,不用於 獨立程序或服務,它屬於 IIS,需要在其中配置 SSL )

            

            Method、SSLVersions:  有SSL 與 TSL 的多個版本,應選擇  TSL 1_1 以上。版本選擇不同,相應的  Method 也不同,兩者相關。

                                                                選擇的Method 不同,相應的版本也會不同選擇!

            VerifyDepth、VerifyDeir 、VerifyMode(Peer、FailIfNoPeer、ClientOnce 或者三個組合)

      

      

 

 

2、在登錄頁,增加 圖形中(數字/文字)等驗證,防止網絡攻擊?

      驗證碼生成器 (推薦) :       http://www.cnblogs.com/ecofast/p/4224016.html

      unigui圖形驗證碼(不推薦,函數不公開) :  https://www.cnblogs.com/hnxxcxg/p/10884619.html

      驗證碼圖片識別 (反向工程): https://www.cnblogs.com/ChinaEHR/p/4083980.html

 

      參考  http://www.cnblogs.com/ecofast/p/4224016.html 提供的方法,並引入 Unigui 項目。

     1) 單獨創建一個 unit , 復制其 驗證碼生成代碼。 本人命名:  unit  AuthCodeGen;

     2)在 Unigui 的 login 登錄頁中,引入 Use 上述 unit ;       Use  AuthCodeGen;

           增加兩個 模塊變量,用於保存 每次生成的 驗證圖片,以及相關的 字符串。   var  genimage : Timage;   authcode : string;

           增加一個 TUniTimage 圖片組件(命名 UniImgCode),用於顯示動態生成的驗證碼到登錄頁,供用於識別;另一個TUniEdit(命名  UniAuthCode),用於接收用戶識別后輸入碼值(數字或者字母);

     3)增加一個 TUniTimage 組件的點擊事件,用於用戶識別不了時,動態變換驗證碼,代碼如下:

          procedure TUniLogonForm.UniImgCodeClick(Sender: TObject);
          begin
               genimage := Timage.Create(self);
               authcode := GenerateAuthenticode(genimage,4);

              UniImgCode.Picture := genimage.Picture;
          end;

    4)在 登錄頁 顯示時,增加調用上述事件代碼,生成 驗證碼;

         procedure TUniLogonForm.UniLoginFormCreate(Sender: TObject);
           begin

                UniImgCodeClick(Sender);

           end;

    5) 在  確認用戶、密碼、驗證碼 的事件中,增加 判斷 用戶 識別輸入的碼 是否 = 系統動態生成的碼值。不等,提示重新輸入,返回。

            if   UniAuthCode.text <> authcode  then

              begin
                  ShowMessage('輸入的驗證碼不正確,請仔細校對!');
                  exit;
            end;

 

3、本地 exe 文件運行,如何設置才能外網訪問?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM