web在做登录时,如何避免F12看到提交的密码以及其他信息,感觉这样很不安全!
TPL_password:
ncoSig:
ncoSessionid:
ncoToken: 7358da857d51……0fe6776e
slideCodeShow: false
useMobile: false
lang: zh_CN
loginsite: 0
newlogin: 0
TPL_redirect_url: https://vip.taobao.com/vipHomeNew2.htm?……
from: tb
fc: default
style: default
css_style:
keyLogin: false
qrLogin: true
newMini: false
newMini2: false
tid:
loginType: 3
minititle:
minipara:
pstrong:
sign:
need_sign:
isIgnore:
full_redirect:
sub_jump:
popid:
callback:
guf:
not_duplite_str:
need_user_id:
poy:
gvfdcname: 1……
gvfdcre: 68747470733A2F2F6C6F67696E2E74616F62616F2E6……7373832643767326D3354
from_encoding:
sub:
TPL_password_2: 74075bd44871a2cfa3b0ba0ad……cce6c8e162b7a8b71843b3e0e684b717a65503cdce20db76c511836fab5f9c59d86820
loginASR: 1
loginASRSuc: 1
allp:
oslanguage: zh-CN
sr: ……*……
osVer:
naviVer: chrome……
osACN: Mozilla
osAV: 5.0 (Windows NT 10.0; ……
osPF: Win32
miserHardInfo:
appkey: 00000……
nickLoginLink:
mobileLoginLink: https://login.taobao.com/member/login.jhtml……
showAssistantLink:
um_token: HV01PAAZ0b……
ua: 108#fg//1/RM/YAaNHy2cp9ZDWExwUsWcLd8nA3JIfmfol……
那你提交的时候给密码加密下,
密码不是登录者自己输入的么?怎么叫避免看到密码?你说的是保存的密码还是浏览器自动完成表单填充的密码?
这些是浏览器控制的。
另外f12你要是觉得不安全,那么用户用http抓包工具看到提交的表单,还是能看到密码。本身这个就是防君子(比如输入密码有人偷看)不防小人的。
做加密处理啊,在js中弄呀,哈希、对称加密、非对称加密、加盐……很多的呀,网上都有教程的
js实现密码加密
刚才我看了一下京东和天猫的登录,他们的只是显示了不敏感的信息,但是密码是被其他的字符串替代了,不知道他们用的什么技术
我看了下,在我的chrome上,password表单是保护的,不需要任何代码。你自己写一个input type=password,也是保护的。
最简单的做法是发送post请求,其次就是进行加密 ,加密方式:md5等
造个仿密码框的轮子,监听事件。
通常的做法是对要提交的文本加密,比如哈希,加盐等,但其原理都是一样的,事实上前端都是裸露的,只要后台是安全无漏洞的就行。
楼上正解,在Post提交表单的时候用JS进行数据加密
最好提交时就已经经过md5加密
通过查看源码,找到了登陆处理的js脚本,格式化代码并分析,猜测登陆加密方式为RSA加密
https://g.alicdn.com/vip/login/0.5.65/js/login/nlogin.js?t=20151220
其中的代码片段
requires : ["node", "dom", "ua", "kg/rsa/2.0.1/index"]
d =
{
elLoginBox : b("#J_LoginBox"),
elStaticForm : b("#J_StaticForm"),
staticFormAction : b("#J_StaticForm") && b("#J_StaticForm").attr("action") || "",
elUserName : b("#TPL_username_1"),
elPassword : b("#TPL_password_1"),
elPasswordRSA : b("#TPL_password_2"),
elCheckCode : b("#J_CodeInput_i"),
elCheckCodeImg : b("#J_StandardCode_m"),
elCheckCodeImgHandler : b("#J_StandardCode"),
elSSOBox : b("#J_QuickLogin"),
elMiserBox : b("#J_MiserLogin"),
bMini : c && c.style ? !!c.style.match(/^(?:mini|b2b)/) : !1,
from : b("#J_From") ? b("#J_From").val() : "",
bCBU : "3" === (a.one("#J_loginsite") ? a.one("#J_loginsite").val() : ""),
bDaily : window.location.host.indexOf("daily.taobao.net") >= 0 ? !0 : !1,
bHttps : "https:" === window.location.protocol,
havanaToken : a.all("#J_HToken").val(),
fullRedirect : a.all("#J_full_redirect").val()
},
Google 按F12 ,勾选了preseve log 才能看到登录名和密码,但是登录密码显示为 null
password 属性不可以吗? 还有可以用 POST方式交互数据
既然是web应用,那么最好的方式就是采用https协议(在http协议的基础上添加ssl层)进行会话,这样不仅仅是用户名,密码采取了密文传输,整个通信过程中的所有信息都会被加密,在安全层面上而言,这样会更安全,而且https协议也是大势所趋。