ps:失眠(insomnia),忆及上次笔试中数题,志
1 单选:考察substring(),此函数接收2个参数,第1个参数指定子字符串的开始位置。第二个参数指定的是子字符串最后一个字符后面的位置!!!
这一点同slice()函数
2 问答题:前端存在哪些安全问题
csrf:cross-site request forgery,跨站请求伪造。
解决办法:
1,检查报头中的referer参数确保请求来自正确的网站
2,对任何重要请求均需再次验证用户身份
3,创建唯一的令牌(token),保存在服务商的session中及客户端的cookie中,检测二者是否一致
xss: cross site scripting,跨站脚本攻击,与sql注入攻击类似,sql注入攻击中以sql语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户浏览器的控制。
解决办法:
1,浏览器自身可识别简单的xss攻击字符串,阻止简单的xss攻击。
2,查漏补缺,消除网站的xss漏洞,开发时运用转义安全字符等手段
3,对于网上冲浪者,需抵挡各种诱惑,不点击非正常网站链接
-----------------------------------------------------------------
3,编程题,写一个函数,此函数接收一个参数,参数类型为选择符,返回一个结果数组,需考虑到浏览器的兼容问题
(答此题时,因之前浏览器故障原因,耗费不少时间,此时有些慌乱,只简单地使用了 html5中提供的 选择符api中的 querySelectorAll()方法)
function getSelectors(selectorId) { var result=[]; var newArr=null; if (document.querySelectorAll) { newArr = document.querySelectorAll(selectorId); } else if (document.getElementsByTagName) { newArr = document.getElementsByTagName(selectorId); } for (var i = 0, len = newArr.length; i < len; i++) { result.push(newArr[i]); } return result; }