请问如何打开一个网页的时候用js将cookie置入进去

JavaScript016

请问如何打开一个网页的时候用js将cookie置入进去,第1张

必须由当前网页所进行的cookie操作才有效,比如说百度的页面,就要由这个页面内所包含的js代码才能设置和获取自身的cookie,而不能由其他网站或软件来强加给它,否则要想黑一个网站就太容易了。

完成例子供参考:

var http = require('http')

http.createServer(function (req, res) {

// 获得客户端的Cookie

var Cookies = {}

req.headers.cookie &&req.headers.cookie.split('').forEach(function( Cookie ) {

var parts = Cookie.split('=')

Cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim()

})

console.log(Cookies)

// 向客户端设置一个Cookie

res.writeHead(200, {

'Set-Cookie': 'myCookie=test',

'Content-Type': 'text/plain'

})

res.end('Hello World\n')

}).listen(8000)

console.log('Server running at localhost')

cookie的几个属性:

expire:cookie的生存期,默认是暂时存储

path:cookie的关联网页,默认是当前目录的网页或者当前目录下的字子目录

domain:设置共享cookie的域名(同一主域名下)切将path设为PATH='/'

secure属性:在https协议下生效,才会传递到服务器端,http协议不会传递。

HttpOnly属性:无法通过脚本程序(js)读取到cookie信息,有效防止XSS攻击。

安全性:出于安全方面的考虑,只有与创建 cookie 的页面处于同一个目录或在创建cookie页面的子目录下的网页才可以访问

同域情况:让这个设置的cookie 能被其他目录或者父级的目录访问的方法:

document.cookie = "userName = 独行冰海path=/"

相同主域不同二级域名的跨域情况:

document.cookie = "username=独行冰海path=/domain=baidu.com"

chrome限制js设置cookie,IE可在本地JS设置cookie

A站点通过script src标签的跨站请求B站点如果请求数据是img 则不会带cookie等数据

如果请求数据是一个get请求地址,则cookie会随请求发出(此时cookie是B站点cookie)

根据这个特性我们可以构造CSRF攻击

实验截图

Cookie限制:

(1)cookie个数限制

IE :原先为20个,后来升级为50个

Firefox: 50个

Opera:30个

Chrome:180个

Safari:无限制

当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。

(2) 浏览器所允许的每个Cookie的最大长度(localstorage为5M)

Firefox和Safari:4079字节

Opera:4096字节

IE:4095字节

(3) 服务器中Http请求头长度的限制。Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。