new操作符

1、创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型

2、属性和方法被加入到this 引用的对象中

3、新创建的对象由this所引用,并且最后隐式的返回this

Ajax原理

1、Ajax的原理简单来说是在用户和服务器之间加了一个中间层(AJAX引擎),通过XmiHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。使用户操作与服务器响应异步化。这其中最关键的一步就是从服务器获得请求数据

2、Ajax的过程只涉及Javascript , XMLHttpRequest和DOM。XMLHttpRequest是 ajax的核心机制

解决跨域问题

jsonp、iframe、window.name、window.postMessage、服务器上设置代理页面

XML和JSON的区别

数据体积方面

JSON相对于XML来讲,数据的体积小,传递的速度更快些。

数据交互方面

JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互

数据描述方面

JSON对数据的描述性比XML较差

传输速度方面

JSON的速度要远远快于XML

AMD和Commonjs

1、CommonJS是服务器端模块的规范,Node.js采用了这个规范。

CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。AMD规范则是非同步加载模块,允许指定回调函数

2、AMD推荐的风格通过返回一个对象做为模块对象,CommonJS的风格通过对module.exports 或 exports 的属性赋值来达到暴露模块对象的目的

常见web安全及防护原理

sql注入原理

就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

总的来说有以下几点

永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等

1、永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取

2、永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接

3、不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息

Xss原理及防范

Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意 html标签或者javascript代码。

比如

攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点

XSS防范方法

首先代码里对用户输入的地方和变量都需要仔细检查长度和对”<"," >”,";","'"等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html tag弄出来。这一个层面做好,至少可以堵住超过一半的XSS攻击

XSS与CSRF的区别

1、XSS是获取信息,不需要提前知道其他用户页面的代码和数据包。CSRF是代替用户完成指定的动作,需要知道其他用户页面的代码和数据包。要完成一次CSRF攻击,受害者必须依次完成两个步骤

2、登录受信任网站A,并在本地生成Cookie

3、在不登出A的情况下,访问危险网站B

CSRF的防御

服务端的CSRF 方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数

通过验证码的方法

设计模式

工厂模式

1、工厂模式解决了重复实例化的问题,但还有一个问题,那就是识别问题,因为根本无法

2、主要好处就是可以消除对象间的耦合,通过使用工程方法而不是new关键字

构造函数模式

1、使用构造函数的方法,即解决了重复实例化的问题,又解决了对象识别的问题,该模式与工厂模式的不同之处在于

2、直接将属性和方法赋值给this对象;


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: JavaScriptJava