Javascript软键盘设计
国内大多数网站的密码在网络传输过程中都是明文的,我们目前正在做的产品也是这样的情形,这正常吗? 大家都偷懒?不重视安全?各人持有观点,有人认为明文传输并不是想象中的那么可怕,事实上正常情况下这些报文你根本监听不到,除非你种木马、入侵路由器、局域网监听等,所以在这种情况下互联网公司一般没必要花太大代价进行处理?其实不然一个好的产品,为用户考虑的产品,就是要把这些看似不起眼的事情做好。
有个案例,听老大讲的。说的是xx公司搞两个同样功能的产品,其中一个产品做得很戳,但价格卖1000,先拿给用户使用;另一个产品设计各方面功能都对用户很体贴,价格只卖500元,这时用户一对比就会产生价值,肯定会去选择第二个产品,而且用着没得怨言,这样销量肯定会比第一个高。好了,不说废话了,先说本次讲的东西。
网络监听大致分为三块:客户端、网络端、服务端,这个不难理解的;首先服务端的安全,这个在你购买网络服务的时候需要慎重选择,安全方面是否可信,网络管理员需要及时对服务器打补丁,阻止黑客利用漏洞进行服务器攻击,这方面的东西太多了,我也是大概了解,本文就不细说。
网络传输过程数据的安全,举一个很简单的例子,如果我用笔记本在一个租房比较密集的小区,建立一个无密码的wifi热点,保证很多试图蹭网的人连接上来,然后如果我用WireShark(或者用WinPcap写一个过滤程序),监听WiFi收到转发的数据包,那一定能截获大批的用户名和口令,如果你登录网站的用户名和密码都是明文传输的,那就轻而易举的得到这些隐私性的数据了,这个例子也说明,各位千万不要贪图小便宜而去蹭别人的WiFi,这是一个对自己来说很危险的行为。实施网络窃听是如此的容易,甚至不需要额外安装什么黑客软件就可以进行。对于很多场合,我们对于传输的内容被窃取并不关心,我不怕别人知道我看了什么新闻,也不怕别人知道我在网站上回答了什么问题,但是用户名和口令这样的身份鉴别信息是绝对不可以被窃取的,因为可能会引起一系列其他的安全问题,大多数人的密码都会有相似情况或者干脆用一个密码吧?因为密码太多怕忘记。前段时间CSDN泄漏用户信息以后大家都在改密码就能说明问题,公司领导也提醒我们内部xx员工系统的密码是明文的,请大家慎重设置个人秘密。个人认为对于关键身份能有鉴别性的信息再传输时进行加密是一种非常有必要的,而且也是非常重要的事情。
客户端攻击,攻击者利用木马程序监控用户的键盘,鼠标等操作信息,最后把数据传到盗号者指定的地方,盗号者利用收集的数据就会分析出敏感信息。木马一般都是有针对性的,比如针对指定的网站,特定的页面进行监听,常见的监听就是对键盘,cookie值,鼠标其次吧,当用户访问xx网站的登录界面时,需要输入账号和密码,这时木马就会将当前所在的网址和当前输入的一系列操作收集并发送到盗号者手中,是不是很简单?所以,为了避免这种情况软键盘就应运而生了,因为软键盘在输入内容时是通过鼠标去点击,不需要键盘操作,如果要想监听用户的鼠标操作,每次鼠标点击时对特定区域截屏,多次连续点击就需要连续截图,最后打包发送(这种方式的木马很容易被发现),另外木马程序不得不针对该特定网站而重新编写,没用通用性,当然盗号者如果觉得有这个必要的话,那就不说了,没得任何方法是安全的。最后说ocx控件,支付宝,各大网银的密码输入框框都是“安全控件”,安不安全那的黑客们说了算,这个本文不讨论了,本文是说软键盘,用javascript编写的软键盘。
我发觉我写文好痛苦,忽悠了半天没有进入主题,越扯越远,终于开始写与软键盘相关的东西了,希望以后能够慢慢提高。。。
上面都说了为何要做软键盘,一是防止客户端有木马,二是网络传输过程中不使用明文传输。效果图,如下:
软键盘设计步骤:1、服务器端将数字、字母、特殊字符分成三部分,分别对这三部分字符串随机排序,并记录键盘布局,放session中。
2、客户端根据服务器生成的键盘布局利用javascript动态生成软键盘及布局。
3、用户鼠标点击软键盘内的按钮的时候文本框会有一个黑点,这个黑点其实是一个随机数,并非真实的密码内容。真实密码的坐标存放到一个列表中。
4、客户端会涉及到坐标转换;字母<--->坐标相互转换。
5、当光标离开密码框,将坐标列表转换为文本字符串赋值到文本框中。会出现一个现象就是,明明只输入了6位数字的密码,但小黑点的数量可能会有十多位,因为这不是明文的密码。
6、用户提交表单的时候,提交到服务器的是密码对应的坐标数据。
7、最后服务器利用session中的键盘布局,解析坐标为真实密码。
注意:该方法还是有漏洞,还请读者自己猜怎么破解密码,其实很简单,javascript是客户端代码,算法都暴露的,网页是dom结构,人人都可以看的,呵呵,懂了吧。
客户端javascript其实也支持rsa非对称加密算法,客户端根据公钥加密坐标数据,服务器端在利用私钥解密坐标,性能是个问题,个人觉得没必要搞这么多设计在里面了。
(未完)
Javascript软键盘设计的更多相关文章
- Atitit.获得向上向下左的右的邻居的方法 软键盘的设计..
Atitit.获得向上向下左的右的邻居的方法 软键盘的设计.. Left right可以直接使用next prev.. Up down可以使用pix 判断...获得next element的posit ...
- form表单提交和ajax表单提交,关于移动端如何通过软键盘上的【搜索】和【前进】进行提交操作
[文章来源]由于自己对于form研究甚少,所以一直用的都是AJAX进行提交,这次后台提出要用form提交,顺便深入研究一下:之前在做表单的时候,发现input可以通过设置不同的type属性,调用不同的 ...
- ios下input获取焦点以及在软键盘的上面
<!----/此方法基于zepto.min.js--> <!--/div元素没有blur和focus事件,blur focus 只适用于input 这类的表格元素--> < ...
- Android 另类方法监听软键盘的弹出收起事件
http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且 ...
- android 表情,软键盘冲突解决方案(仿微博等SNS应用)
之前总想搞一下这个模块,可是由于忙碌总是推迟,现在就把这块好好的弥补过来,下面是我实现的思路.本人才疏学浅,还望大家不要见笑. 首先我们还是先看写示例: 上面应用应该不用我过多介 ...
- JS软键盘代码
页面代码如下: <HTML> <HEAD> <TITLE>一个不错的js软键盘代码</TITLE> <meta http-equiv=" ...
- jQuery软键盘插件
1.html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.or ...
- Android中软键盘弹出时底部菜单上移问题
当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncrea ...
- popupwindow中EditText获取焦点后自动弹出软键盘
关于popupwindow中EditText获取焦点后自动弹出软键盘的问题,玩过手机qq或空间的童鞋应该知道,再点击评论时会弹出一个编辑框,并且伴随软键盘一起弹出是不是很方便啊,下面我们就来讲一下实现 ...
随机推荐
- SQL查询——SQL LEFT JOIN/SQL RIGHT JOIN
简介 在实际情况下,比如在一个大学里,有很多老师,老师都有自己的研究方向和职称.并且,可能并不是每个老师都带有研究生,如果一个新来的老师,可能还没有带研究生.所以,如果领导要求查出所有老师带研究生的数 ...
- 验证时出错。HRESULT = '8000000A'
往往出现在 做了安装项目后有警告: 解决办法: 这本来是在VS2005下创建的一下项目,后来改用VS2010的开发环境,.NET Framework的版本还是使用2.0, 但每次生成之后都会在解决方案 ...
- RabbitMQ配置文件
配置文件Config 在Web的可视化管理界面中可以看到一些文件的路径 比如 Config文件的地址 数据库存放的文件夹 log文件的地址 进入到这个文件夹会发现有这些文件,其中example是con ...
- JPA事务总结
http://www.soso.io/article/65405.html 事务管理是JPA中另一项重要的内容,了解了JPA中的事务管理,能够进一步掌握JPA的使用.事务管理是对一系列操作的管理,它最 ...
- GitHub的三个按钮
star 的作用是收藏,目的是方便以后查找. watch 的作用是关注,目的是等作者更新的时候,可以收到通知 fork 的作用是参与,目的是你可以增加新的内容,然后 Pull Request,把你的修 ...
- 关于datatable linq的转换
关于datatable datarow DataTable paraval = GetParaVal(DateCondition, strUrl, Page, RowPage, iYearMonthN ...
- 在VS中向命令行添加参数的方法
在VS中向命令行添加参数的方法 在VS中向命令行添加参数,即向main()函数传递参数的方法: 右键单击要 添加参数的工程-->属性-->配置属性-->调试,在右侧“命令参数”栏输入 ...
- live555在Raspberry Pi上的点播/直播
1.live555在Raspberry Pi上的点播 live555MediaServer这个实例是个简单的服务器,支持多媒体点播,直接在Raspberry Pi上编译运行,或者通过交叉编译出ARM核 ...
- Form表单中的action路径问题,form表单action路径《jsp--->Servlet路劲问题》这个和上一个《jsp--->Servlet》文章有关
Form表单中的action路径问题,form表单action路径 热度5 评论 50 www.BkJia.Com 网友分享于: 2014-08-14 08:08:01 浏览数44525次 ...
- sqlmap写文件为空之谜
恰逢有一个SQL注入可以通过sqlmap进行,而且权限高得离谱,直接就是root权限.既然是root权限当然是想直接getshell咯.可是只是sqlmap -u xxx --os-shell的时候却 ...