小二的在编程技术上的幼稚远超出你我的想象。
我是阿篱,这是测试号。
就这样的技术,踏上自己的性命,去做最危险的政治工作,
容我吐槽一句:不仅对自己性命不负责,也是对其信任的朋友的不负责
就这样连it培训班里出来的初中毕业生都不如的程度,他是如何有胆量去为新品葱做一年的后台开发的。
小二他究竟暴露了多少自己和他人多少的个人信息?
”允许字母、数字、中文,不能全为数字,4~12个字节” 指的是登录名不是密码
容我吐槽一句,就这样的IT萌新,去说BE4是追踪狂。现在回想起来真的是小学生在指责大学生的感觉。
我都怀疑他密码是不是明文化了。
你新来的? 本站开源
看代码吧
https://github.com/Terminus2049/2049bbs/blob/b65c6211bd4d59ff8e0cf6e9a5f25431d47a9bff/controller/user.go#L91
https://github.com/Terminus2049/2049bbs/blob/9bb5c427c761a127828f2500933e5e1fbf05aeda/util/stringcheck.go#L21
用户名要符合这个正则表达式 ^[a-z0-9A-Z\p{Han}]+(_[a-z0-9A-Z\p{Han}]+)*$
,b
确实没问题
应该说是代码和 ”允许字母、数字、中文,不能全为数字,4~12个字节” 的描述不符
这怕那怕,一个个贼样,退站就是,bb啥呢。
怕得个胆小如鼠,一老鼠,还反,藏在暗无天日的洞里就是啊
密码md5后保存。。。
注册页面源码
// register
``siteCf := h.App.Cf.Site
if siteCf.CloseReg {
w.Write([]byte({"retcode":400,"retmsg":"stop to new register"}
))
return
}
if db.Hget(“user_name2uid”, []byte(nameLow)).State == “ok” {
w.Write([]byte({"retcode":405,"retmsg":"name is exist","newCaptchaId":"
+ captcha.New() + "}
))
return
}
userId, _ := db.HnextSequence("user")
flag := 5
if siteCf.RegReview {
flag = 1
}
if userId == 1 {
flag = 99
}
uobj := model.User{
Id: userId,
Name: rec.Name,
Password: rec.Password,
Flag: flag,
RegTime: timeStamp,
LastLoginTime: timeStamp,
Session: xid.New().String(),
}
// 从指定的用户中随机选一个头像作为新注册用户头像
// 指定用户必须连续,取最小id和最大id
rand.Seed(time.Now().UnixNano())
min := siteCf.AvatarMinId // 2539
max := siteCf.AvatarMaxId // 2558
sampleID := rand.Intn(max-min+1) + min
uidStr := strconv.FormatUint(uint64(sampleID), 10)
uobj.Avatar = uidStr
uobj.IgnoreLimitedUsers = true
jb, _ := json.Marshal(uobj)
db.Hset("user", youdb.I2b(uobj.Id), jb)
db.Hset("user_name2uid", []byte(nameLow), youdb.I2b(userId))
db.Hset("user_flag:"+strconv.Itoa(flag), youdb.I2b(uobj.Id), []byte(""))
h.SetCookie(w, "SessionID", strconv.FormatUint(uobj.Id, 10)+":"+uobj.Session, 365)
}``