1. 程式人生 > >用http.get()簡單實現網絡驗證防止客戶不給尾款_電腦計算機編程入門教程自學

用http.get()簡單實現網絡驗證防止客戶不給尾款_電腦計算機編程入門教程自學

\n str 網絡 alt select var mman classes 內部

首發於:用http.get()簡單實現網絡驗證防止客戶不給尾款_電腦計算機編程入門教程自學

http://jianma123.com/viewthread.aardio?threadid=428

給軟件加上網絡驗證是經常需要用到的實用功能,下面簡單示範下怎麽用http.get()簡單實現網絡驗證,用來防止客戶不給尾款等.

適用場景

1.集團公司給大量員工用的內部軟件,防止外傳

2.給客戶定制的軟件在試用版中加上網絡驗證,防止不給尾款

工作過程

先讓用戶申請帳號,管理員在後臺審核添加帳號,每次登陸前驗證下機器碼,返回通行碼供本地驗證.

申請開通帳號按鈕:用http.get()方式把"用戶名/密碼/機器碼"提交給http服務端保存到申請表,管理員審核時一條條把它復制到通行表

登陸按鈕:用http.get()方式把"用戶名/密碼/機器碼/時間戳"提交,並本地根據這幾個參數算法來生成正確的通行碼

http服務端收到後根據這幾個參數算法來生成正確的通行碼響應輸出,客戶端獲取到後用它來與本地生成的通行碼對比,如果正確就提示登陸成功

優點

可以驗證機器碼;

可以驗證帳號;

可以因為有時間戳的參與而每次點登陸按鈕都是返回不同的通行碼,破解者如果不知道驗證原理抓包也無法用本地host跳轉的方式來破解,只能用od修改軟件邏輯判斷,增加了破解難度.

缺點

用od修改軟件邏輯判斷可以輕易破解(一般用戶或客戶不具備這種能力,如果找人破解也需要付出一定的成本)

防破解

1.可以在驗證到通行碼不對時啟動時鐘,電子取證,然後隨機秒數後自退

2.加多種暗樁,防止直接修改判斷邏輯就突破防線

3.加大破解者損失,暗樁裏可以格式化硬盤破壞對方的業務數據文件啥的讓對方不敢隨便用盜版

核心源碼

winform.button.oncommand = function(id,event){
    
    //申請開通帳號
    var name = winform.editName.text;
    var pwd = winform.editPwd.text;
    var mcode = winform.editMcode.text;
    
    var html,errInfo,errCode = http.get("http://jianma123.com:55555/?ac=reg&name="+inet.url.encode(name)+"&pwd="+pwd+"&mcode="+mcode)
    //console.varDump(html,errInfo,errCode)
    
}

winform.button2.oncommand = function(id,event){
    
    //登陸
    var name = winform.editName.text;
    var pwd = winform.editPwd.text;
    var mcode = winform.editMcode.text;
    var tick = time().getMilliTime();
    
    正確的通行碼 = 生成通行碼(mcode,tick)
    console.log("正確的通行碼:",正確的通行碼)
    
    var htmlStr,errInfo,errCode = http.get("http://jianma123.com:55555/?ac=login&name="+name+"&pwd="+pwd+"&mcode="+mcode+"&tick="+tick)
    console.varDump(htmlStr,errInfo,errCode)
    
    if(htmlStr==正確的通行碼){
        winform.msgbox("允許通行")
    }else {
        winform.msgbox("不允許通行,請聯系管理員")
    }
    
}
技術分享圖片

用http.get()簡單實現網絡驗證防止客戶不給尾款_電腦計算機編程入門教程自學