POST是提交数据的方式,比较常见的POST提交数据的方式有四种:

1、application/x-www-form-urlencoded(浏览器支持):主要向服务器提交用户隐私相关的信息

2、multipart/form-data(浏览器支持)向服务器上传小文件,一般不超过2M

3、application/json(浏览器不支持):向后台服务器提交结构化数据

4、text/xml(浏览器不支持):向后台服务器提交结构化数据

本文主要介绍第一种提交数据的方式:如何用POST进行用户数据安全提交,保护用户隐私。应用实例:登录

用户登录操作常用的有两种方式,GET和POST。

下面就用Firefox浏览器详细解析用户登录的这两种方式,为什么要选择POST,怎么利用POST才能让用户数据更安全!

GET登录:

登录后,我们会在url地址栏中看到登录的用户名和密码,如此一来便毫无安全可言。

不仅如此,在控制台的服务器访问日志中能够看到详细的访问信息!

使用GET方法所有参数都包含在URL中,所有访问网站的URL都会记录在服务器的访问日志中。

而服务器的访问日志正是黑客攻击的重点对象之一!

利用GET进行用户信息登录是一种非常不安全的方式。

相比于GET而言,POST就安全得多。

POST是通过携带数据体传递用户登录信息,登录的数据并不会出现在URL和服务器访问日志中。

但这也并不十分安全,只要拦截到了传递的数据体,用户名和密码就能轻松获取。

例如:利用Firefox中的Firebug就能轻松拦截到数据体,获取用户名和密码

在关系到用户隐私的时候,要时刻遵循两个原则:

1、任何应用程序都不能在本地存储与安全相关的用户信息

2、任何应用程序在向服务器传递数据的时候,都不能直接传递与安全相关的用户信息。

要想让用户信息安全,就必须对其进行加密,让别人即便是拿到了安全信息,摆在眼前的也是一串乱码,没有半点用处

MD5是一种常用的加密方法,它是一种散列函数,利用MD5对用户信息进行加密,会增加用户信息安全性。

网上有关于MD5的第三方框架Category

利用这个第三方框架可以实现对密码进行MD5加密

加密之后的密码即便是被人拦截,也是一串经过加密的密文,而且这段密文无法反编译回明文,即便是你拿到了编译函数也无法做到反编译。

下面是经过MD5加密后打印出来的密码密文:

这一串202cb962ac59075b964b07152d234b70就是密码123的密文。

如此一来就安全到无懈可击了吗?你要是这样想那就图样图森破了。

这里介绍一个网站:

还能说什么?人家有160T的数据库,记录了24万亿条密文数据,恐怕只要你设置的密码还在人类能记住的范围内,我就能给你破解。

啥也别说了,一句话:这是一个神奇的网站。

有漏洞就要补,既然你只能破解有记录的密文,那我弄一条你没记录的不就解密不了了吗?将密码设置成非人类能记住的即可。

比如:dfKFHK83*#$!dfa>kjdakj2093978609)(&^%$+/.X\AJFkdfh276920s54568$$%*!^&!./SXKAa03-293-=29713720917ks^%$(jh628

这段密码加密后,我相信它绝对破解不了!安全是有了,但同样没人能记住这种密码,更没人设置这种密码,也很少有地方允许设置这种密码(密码一般都会限制长度)

既然人不能设置,那就在程序内给密码后面添加上!

这就是给密码加“盐”,就是给密码加点佐料(一串乱七八糟的字符)。

打印出来的密文:

在神奇的网站上解密测试:

根本解密不了了!

这样用户信息就有了安全保障。

用户登录时的安全问题剖析相关推荐

  1. 远程桌面中指定在用户登录时启动的程序

    使用组策略(最佳操作) 打开"组策略". 在"计算机配置"."管理模板"."Windows 组件"."终端服务 ...

  2. linux系统创建组、用户。并指定用户所属组,指定用户登录时的起始目录,自动创建登入目录

    步骤1: 执行命令:groupadd xj 创建组xj 步骤2: 执行命令:useradd -g xj xj -d /home/xj -s /bin/bash -m -g 指定用户所属群组.第一个xj ...

  3. ss修改服务器加密方式,SSM框架新增/修改用户、用户登录时密码加密处理及校验...

    加密技术Md5Crypt需要在pom文件中导入包: commons-codec commons-codec 1.10 一.第一种实现方法 1).新增用户时,对新增后的用户密码进行加密 在userSer ...

  4. 用户注册增强:用户登录时显示进度条

    2019独角兽企业重金招聘Python工程师标准>>> MT4 帐号验证通常需要花费 2-60 秒的时间.对于壹個有多个服务器名称和符号前缀的投资者而言,前端代码需要使用多线程技术来 ...

  5. 让user组用户登录时自动运行需要administrator权限的程序

    今天忙了大半天,总算成功了,这里就说说,大家如果有更好的方法也回帖说说,我也好学习下:) 目的很简单,就是在启用UAC的情况下,让普通用户可以通过脚本运行需要管理员权限的程序,而不需要输入管理员密码 ...

  6. java 购物车 存放数据库_java-没有用户登录时存储购物车(playframework...

    我正在浏览有关Play的帖子!框架,遇到了一些讨论电子商务的帖子.由于我是这两者的初学者,所以我想做一个练习.我写下了一些用例和一些要求,如下所示.我想听听您对此的看法,希望拓宽我的技术智慧. 网页上 ...

  7. linux怎么登陆另外一个账号,linux – 当其他用户登录时,如何在Debian xfc...

    我想阻止用户在其他用户登录时开始关机或重启.用户可以是TTY用户(Ctrl Alt F3)或来自客户端主机的ssh用户. 在OpenBSD中,我将polkit org.xfce.session.pol ...

  8. Oracle Database 11g 数据库普通用户登录时提示 ORA-28002: the password will expire within 5 days

    用PL/SQL登录oracle数据库时,提示 ORA-28002: the password will expire within 5 days ,密码即将过期,解决方式是: 查看用户的proifle ...

  9. 切换或者用户登录时 出现 显示 -bash-4.2$ 问题 的解决

    集群的普通用户在登录用户或者切换用户时,出现 -bash-4.2$ 的状态: [goldwind@TR-OS-DB 9.4]#su postgres bash-4.2$ 原因:在linux下通过use ...

最新文章

  1. 信息上传服务器加速cpu处理,英特尔发布全新第二代至强可扩展处理器携手浪潮加速新型应用发展...
  2. 基于STM32的DS1302时钟芯片驱动
  3. linux 如何创建内核进程,Linux内核的进程创建和执行.pdf
  4. akka_Akka的字数统计MapReduce
  5. java hql 参数_java – SQLQuery中的Hibernate命名参数
  6. 一个出色的UI设计师需要具备哪些能力?
  7. 项目经理,你真的是资源不足吗?
  8. 夜曲歌词 拼音_《夜曲》的歌词 - 歌手:周杰伦 (Jay Chou)
  9. tungsten-replication实现mysql-mongo数据同步
  10. java 埋点_数据采集之js埋点
  11. 新加坡亲子游,这些热门景点必须安排上
  12. 园区SDN网络自动化能力优化思路
  13. 花嫁之容氏浅浅最后怎么样了_花嫁之容氏浅浅小说
  14. 怎么取消微信送票服务器,智行火车票如何关闭微信自动扣费服务 微信怎么关闭智行火车票自动扣费授权...
  15. win10 取消任务栏图标合并
  16. SpringBoot整合knife和swagger3
  17. BL101助力于采集光伏电流电压
  18. office2013零售版转vol版
  19. 路由软件安装使用(一)(bird)
  20. svn 文件类型限制

热门文章

  1. 蓝桥杯试题 基础练习 十六进制转十进制
  2. 分享一个小东西——Wallpaper Engine隐藏成就30条命获得方法
  3. maya动画导出处理
  4. 虚拟服务器系统忘记密码,云主机系统密码忘记
  5. 实战:如何打造一个好的标题进行引流?
  6. 美食杰项目(七)菜谱大全
  7. vue2.0源码解析(一)
  8. 推荐系统自己实践-----基于用户的推荐
  9. 华为“捅破天”,P60扛大旗
  10. 增强灰狼和布谷鸟混合优化搜索算法(AGWO-CS)matlab仿真,提供20多个标准目标函数进行测试