小编geo*_*per的帖子

多次设置 cookie 标头

我在资产控制器中有此代码来获取图像:

function images($path,$image_name)
{
    $image = "../assets/images/$path/$image_name";

    if (file_exists ($image) && (is_file($image))) {
        $name = $image_name;
    } else {

    }

    $file = getimagesize($image);
    $filesize = filesize($image);

    $time_cache = 360000000000;
    $ts = gmdate("D, d M Y H:i:s", time() + $time_cache) . " GMT";
    header("Content-Type: {$file['mime']}\n");
    header("Content-disposition: inline; filename=\"$name\"\n");
    header("Content-Length: $filesize\n");
    header("Expires: $ts");
    header("Pragma: cache");
    header("Cache-Control: max-age=$time_cache");
    readfile ($image);
}
Run Code Online (Sandbox Code Playgroud)

我已将 csrf 保护设置为truein,config/config.php file并且每个对图像的请求都带有Set-Cookie标头。因此 csrf-cookie 可以在某些页面上多次设置。这是否值得担心,如果是,是否有办法防止这种情况发生?

php cookies codeigniter

5
推荐指数
1
解决办法
2483
查看次数

Expressjs bodyParser和connect-form

我用连接表单上传图片.但如果我使用它,它就不起作用bodyParser().反过来说,如果我不使用bodyParser,我无法上传文件?

我如何让他们一起玩?这是我的配置:

app.configure(function() {
    app.register('.html', require('ejs'));
    app.set('views', __dirname + '/../views');
    app.set('view engine', 'html');
    app.use(gzippo.staticGzip(__dirname + '/../public'),{ maxAge: 86400000 });
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(form({ 
        keepExtensions: true,
        uploadDir: __dirname + '/../tmp'
    }));
    app.use(express.cookieParser());
    app.use(express.session({
        secret: 'test',
        cookie: { secure: true },
        store: new MySQLSessionStore(client.database, client.user, client.password)
    }));
    app.use(expressValidator);
    app.use(app.router);
    app.use(express.csrf());
});
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

5
推荐指数
1
解决办法
4907
查看次数

Socket.io清理传入的数据(xss)

我在expressjs中使用socket.io 3.我想用快速验证器清理传入的消息.我有这个代码:

var expressValidator = require('express-validator')
, sanitize = require('express-validator').sanitize;

socket.on('chat', function (data) {
    io.sockets.in('test').emit('chat', {
            user: sh.session.user,
            message: data.message,
            time: new Date()
    });
});
Run Code Online (Sandbox Code Playgroud)

我该怎么用sanitize(data.message).xss?因为这不起作用.

javascript xss node.js express socket.io

4
推荐指数
1
解决办法
1601
查看次数

表达mysql会话

我找不到使用express和node.js在mysql中存储会话的好方法.任何人都有一些模块的提示或实现这一目标的方法?

提前致谢

mysql session node.js express

3
推荐指数
1
解决办法
4637
查看次数

RegEx在字符串内只有一个点不在开头或结尾

如何在javascript中编写正则表达式,只允许用户编写:

abc.def,abc-defabc

所以基本上匹配一个只包含字母的模式(只有小写[az])和一个.-.但不匹配-.在字符串的开头或结尾或多次(仅一个.-每个字符串)

所以容许他们这样做:

..... abc...abc abc.abc.... abc----.... ...abc.abc .abc -abc 等等

javascript regex

3
推荐指数
1
解决办法
6393
查看次数

在codeigniter中从CLI运行脚本时阻止cookie

有没有办法阻止会话类在从命令行调用时设置cookie并在数据库中添加记录?

php command-line codeigniter

2
推荐指数
1
解决办法
1402
查看次数

Expressjs身份验证

我有一些关于登录和会话的问题.我有这个代码:

db查询:

login: function(req,callback) {
    var query = 'SELECT id FROM users WHERE email = "' + req.body.email_login + '" AND password = "' + hashlib.sha1(req.body.password_login) + '" LIMIT 1';
    client.query(query, callback);
}
Run Code Online (Sandbox Code Playgroud)

路线:

app.post('/login', function(req, res, next) {

    users.login(req,function(err, results) {
        if (err) {
            res.render('index');
        } else if (results[0]) {
            req.session.userdata = results[0];
                req.session.is_logged_in = true;
                res.render('site/news');
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

Auth中间件:

var auth = function (req, res, next) {
    if (req.session.userdata && req.session.is_logged_in === true) {
        next();
    } else …
Run Code Online (Sandbox Code Playgroud)

javascript authentication node.js express

2
推荐指数
1
解决办法
4909
查看次数

Expressjs路由用户名

我试图在快递中使用用户名作为路线,以查看他们的个人资料.

app.get('/:username', function (req, res, next) {
    users.get_user(req.params.username, function (err, results) {
        if(results[0]) {
            res.render('/profile', {
                title: 'Profile',
                userinfo: results[0]
            });
        } else {
            next();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

users.get_user是一个从db获取用户的函数.如果找不到用户,则继续下一个路线.我也有很多其他页面,比如/start,/forum等等.这是不够的做法,因为每次通过/:username路径时都会调用db .我的问题是,有更好的方法吗?

javascript routes node.js express

2
推荐指数
1
解决办法
903
查看次数

Nodejs Express MySQL会话存储

我一直在使用connect-mysql-sessionMySQL数据库中存储会话,但它不再被维护,并且已经2年没有更新了.

是否还有其他用于表达的mysql会话存储模块正在被主动维护?

如果没有,我仍然可以使用MySQLdb来存储用户信息等,并使用另一种数据库来存储会话吗?喜欢Redis还是MongoDB?这是好习惯吗?

mysql session node.js express

2
推荐指数
1
解决办法
5734
查看次数

Nodejs全局变量和模块

在nodejs中是否有任何安全问题或使用全局变量和分配模块到全局变量的东西?

例:

client = new Client();
Run Code Online (Sandbox Code Playgroud)

没有var声明,我可以在任何地方使用它吗?

javascript node.js

1
推荐指数
1
解决办法
3100
查看次数

ExpressJS 条件重定向

我正在尝试编写用于身份验证的中间件。我希望这个 if 语句将用户重定向到'/'(如果他们未登录)。如果他们已登录,我不想将他们重定向到“/news”。

/*Simplified for this example*/

if(rs.authenticated === true) {
    next();
} else {
    res.redirect('/');
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在这些 if 语句中做到这一点?或者我必须写一个新方法?我已经尝试了几种使用 if 语句的方法,但我只是得到重定向循环。

javascript redirect express

1
推荐指数
1
解决办法
5602
查看次数