aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 21715|回复: 4

分享个用户与后台交互的一个源码

[复制链接]

13

主题

36

回帖

325

积分

二级会员

积分
325
发表于 2018-5-2 16:48:44 | 显示全部楼层 |阅读模式
本帖最后由 qw874038752 于 2018-5-2 16:50 编辑

最近搞服务端 有的时候瞎整哈哈感谢Jacen以及阿尔法的指导!!
废话不多说主要功能:
       1.用户注册登录
       2.服务端返回状态码
我自己是在IIS下弄得,数据库用的是mysql:

先上客户端很简单:
import win.ui;
import inet.whttp
import sys.storage;
import web.json
import console
/*DSG{{*/
mainForm = win.form(text="aardio form";right=591;bottom=463)
mainForm.add(
button={cls="button";text="登录";left=48;top=104;right=248;bottom=136;z=1};
button2={cls="button";text="注册";left=48;top=160;right=248;bottom=192;z=2}
)
/*}}*/

var whttp =inet.whttp() ;
var devices = sys.storage.getDevices()
for(idx,drives in devices){
        property = sys.storage.queryProperty( idx );
        if(!property) continue ;
}
mainForm.button.oncommand = function(id,event){
    //这个是登录
        var username ="qw874038752" ;
        var password ="qw123123" ;
        var mac =property.serialNumber ;  
        var html = whttp.post("http://localhost/api/login.aardio","username="+username+"&password="+password+"&mac="+mac) ;  
        var tab =web.json.parse(html) ;
        if(tab.code==0){
                win.msgbox(tab.data)
        }else {
            win.msgbox(tab.msg)
        }       
}
mainForm.button2.oncommand = function(id,event){
        var username ="qw874038752" ;
        var password ="qw123123" ;
        var mac =property.serialNumber ;  
        var html = whttp.post("http://localhost/api/regin.aardio","username="+username+"&password="+password+"&mac="+mac) ;  
        var tab =web.json.parse(html) ;
        if(tab.code==0){
                win.msgbox(tab.msg)
        }else {
            win.msgbox(tab.msg)
        }       
}

mainForm.enableDpiScaling();
mainForm.show();
return win.loopMessage();

再来注册部分服务端:
import web.json
import carl.mysql
var server,database,uid,pwd = `xxxx`,`xxx`,`xx`,`xxxx`
var MysqlDB = carl.mysql( server,database,uid,pwd )
if(!MysqlDB.conn){
        return '链接数据库失败';
}
if(request.post.password and request.post.mac ){
       var username = request.post["username"]
           var password = request.post["password"]
           var mac = request.post["mac"] ;
                if(!password or !username ){
                        return false; //这里是输入的账号和密码空号
                }
                var sql =`select * from wptsp where username='`+username+`' or mac='`+mac+`'`
            var z = MysqlDB.getTable(sql)
                if(#z){
                        //账号存在
                                r = {
                                    code = 404;
                                    msg = "注册失败";
                            }
                            response.write(web.json.stringify(r))
                                return ;
                }
                else {
                    //账号不存在
                     var tm=tostring(time())
                     var tt=tostring(time().addhour(3))
                     var  sql = `insert into wptsp(username,password,mac,start,zzzz) values('`++username++`','`++password++`','`++mac++`','`++tm++`','`++tt++`');`
                     var ok,err = MysqlDB.exec(sql)
                     if(ok){
                   r = {
                                            code = 0;
                                            msg = "注册成功,免费体验3个小时";
                               }
                      }       
                      else {
                                     code = 100;
                                            msg = "注册失败";
                     }   
                }
                response.write(web.json.stringify(r))
}
再来服务端中登录部分:
  
import web.json
import carl.mysql
var server,database,uid,pwd = `xxxx`,`xx`,`xx`,`xx`
var MysqlDB = carl.mysql( server,database,uid,pwd )
if(!MysqlDB.conn){
        return '链接数据库失败';
}
if(request.post.password and request.post.mac ){
       var username = request.post["username"]
           var password = request.post["password"]
           var mac = request.post["mac"] ;
                if(!password or !username ){
                        return false; //这里是输入的账号和密码空号
                }
                var sql =`select * from wptsp where username='`+username+`' and password='`+password+`'`
            var z = MysqlDB.getTable(sql)
                if(#z){
                        //账号存在
                        if(!z[1].mac==mac){
                                r = {
                                    code = 404;
                                    msg = "对不起已绑定其他电脑";
                            }
                            response.write(web.json.stringify(r))
                                return ;
                        }
                        var endtm=time(MysqlDB.getTable(sql)[1].zzzz,"%Y/%m/%d %H:%M:%S");
                    var tm=time.now()
                    if(endtm>=tm){
                            //未过期
                              r = {
                                        code = 0;
                                        msg = "登录成功,到期时间";
                                        data=MysqlDB.getTable(sql)[1].zzzz
                                  }
                    } else {
                            //过期
                        r = {
                                        code = 100;
                                        msg = "登录失败,已到期";
                                  }
                    }       
                }
                else {
                    //账号不存在
                    r = {
                                code = 900;
                                msg = "账号不存在或密码输入错误,登录失败";
                        }       
                }
                response.write(web.json.stringify(r))
}

13

主题

36

回帖

325

积分

二级会员

积分
325
 楼主| 发表于 2018-5-2 16:52:55 | 显示全部楼层
  二楼我的 有没有指点下,不知道能不能sql注入,有没有大大这方面的研究

170

主题

2169

回帖

1万

积分

管理员

积分
13161
发表于 2018-5-2 20:19:45 | 显示全部楼层
不要用SQL拼接,改用命令参数,例子里有

13

主题

36

回帖

325

积分

二级会员

积分
325
 楼主| 发表于 2018-5-2 22:14:00 | 显示全部楼层
Jacen.He 发表于 2018-5-2 20:19
不要用SQL拼接,改用命令参数,例子里有

字符串拼接会被sql注入吗 Jacen

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

12

主题

68

回帖

809

积分

培训班

积分
809
QQ
发表于 2018-5-2 22:34:58 | 显示全部楼层
qw874038752 发表于 2018-5-2 22:14
字符串拼接会被sql注入吗 Jacen

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

字符串拼接很容易注入,风险大些。服务端也要数据先验证和过滤。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-10-4 19:39 , Processed in 0.060339 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表