要对用户输入的信息进行简单的过滤。例如点击登录按钮时先判断用户输入用户名和密码了吗?密码超过指定数量的字符了吗?(密码要有个最低长度)。如果有问题,就直接用alert之类的提示用户,没必要把数据传到后台了。当然,服务器收到用户名和密码时候也要再做这些判断,再去数据库里判断有没有这个用户
若用户名,密码都输入了,但有错误,通过Ajax及时通知。页面加载速度?怎么优化?
要不要把静态文件放入cdn?
要不要压缩js代码?怎么压缩?
缓存登录页面还有一些值得考虑:
用http还是https?验证码:
什么是验证码:
验证码就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰元素,由用户肉眼识别其中的验证码信息,然后输入表单提交网站验证,验证成功后才能使用某项功能。
实现
验证码的实现方法有很多种,但大致模式是一样的。目前有的网站使用验证码的方式有session方式和cookie方式,区分主要根据验证码初始值保存在哪里,虽然对于一般用户而言这两种都是不可见的,但安全性差别很大。一般而言,session方式比较安全,用户除非识别图片,别无选择,只是增加了服务器的一丁点额外的内存消耗。cookie方式不使用额外的服务器内存,但cookie方式用户可对验证交互过程数据进行分析,可轻松破解验证码,所以出于更高的安全性考虑,还是建议使用session方式
目的
现在很多网站使用验证码技术,主要为了安全性考虑,防止用户使用程序自动机进行自动提交注入,避免服务器交互处理遭受不必要的攻击。其主要思想是必须通过人为参与完成信息提交过程,并且对验证码字体做了相关处理,因为对于目前的技术发展来说,验证码的计算机自动识别还不太容易(不是没有可能)。虽然现在有些技术可以绕过验证码输入这一关,但使用验证码技术,也还是对其有一定的制约作用,并且主要的对网站的信息安全还是起到了显著的保护屏障的作用。
使用方式
验证码的使用很简单,只是在原有表单提交代码内加入两个新要素:验证码输入框,验证码图片。验证码图片,图片源指向服务器端动态处理,输出二进制图片格式,用户看不清时可单独重载图片,产生新的验证码。验证码输入,主要用于用户获取用户识别验证码图片的结果。提交数据后服务器根据已保存的初始值和用户识别值进行比对,如不符,立即停止信息提交处理,反馈验证码输入错误
- 如何预防攻击:
sql注入:
服务器端用预处理语句
xss:
跨站脚本攻击,是注入攻击的一种其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码或者用户端脚本语言。,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。其特点是不对服务器端造成任何伤害。
XSS防御:
完善的过滤体系 永远不相信用户的输入。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉。
csrf:
跨站请求伪造,攻击者盗用了你的身份,以你的名义发送恶意请求。
对于服务器要能够判断请求是否是从自家网站发出的。