<noscript>你的浏览器不支持,或者安全等级设置过高</noscript>
js的功能:修饰页面,交互行为,数据交互。
js禁忌及突破:
1、受制于浏览器
2、绘图等
3、读写文件
数据安全:
- 不要在客户端透露、暗示任何服务器端特性或系统特性。
- 服务器端提供的部分数据,及处理这些数据的业务逻辑。
- 通过页面js代码可以推断出前后端交互的数据结构和方式,有破解系统的可能。
- 数据对象的关联关系、主键的属性名、身份校验、必填项约束。。。有助于分析系统结构,找到系统的突破口
- 表单数据除客户端校验外,服务器端也须校验。提交表单的页面入口的校验代码失败,或者伪造代码,达到提交非法数据的目的。此外,容易被伪造的数据还有单据的编码、提交人、身份验证和授权码
攻击与防范:
1、伪造表单提交目的地,窃取数据
2、伪造数据,绕过合法性验证
3、采集数据,窃取网页内容
盗链:
从服务器获得页面文档---常说的数据采集(判定referrer,也容易伪造)
避免数据的服务器到客户端的传输。采用编码或加密后的数据作为内容,再生成静态html等,
最后由客户端混淆加密过的js将文档动态输出。
JavaScript:document.body.outerHTML (编译后的页面代码) 入侵者的绝杀武器
性能:
内存开销:每千行内存开销10MB,采用JS特效增加的图片、DOM元素、样式表等,不良代
码。
内存泄漏:js或页面dom在客户端生命周期结束时未能正常释放。
js开源组件产生的额外内存开销,会产生100~150KB的内存泄露,引用的组件
越多,泄露内存越多,导致浏览器占用的系统内存升高。
内存泄露检测:
1、浏览器打开页面,反复刷新,在系统的任务管理器查看对应浏览器进程的内存消耗,若迅速升高且页面装载完成后5s未回降,即可断定系统存在内存泄露,泄露值为前后的差值。
2、工具Drip、HttpWatch