Tag: 表示

将ejs的variables传递给javascript(服务器到客户端),同时避免XSS问题

这似乎是使用ejs将variables传递给JavaScript的可接受的方式是这样的: <script> var foo = <%- JSON.stringify(foo) %>; </script> 但是我遇到了使用这种方法的XSS问题,并想知道是否有一个更好/更安全的方法。 这个例子显示了这个漏洞。 这从JSON.stringify("</script><script>alert('test')</script><script>")返回"</script><script>alert('test')</script><script>"和<%- %>运算符不会转义结果。 它也适用于对象: 这里的例子 <script> var test = { "text": "</script><script>alert('test')</script><script>" } </script> 有没有更安全的方法来处理这个问题?

Node.js – res.sendFile – 错误:ENOENT,stat – 即使path是正确的

这是我的文件夹结构: 根文件夹 … … … app.js escape_iframe.html … 从app.js内我正在做: res.sendFile('escape_iframe.html' , {root : __dirname}); 和我得到的错误是: Error: ENOENT, stat '/app/escape_iframe.html' 我想这是一个可怕的方式说,该文件不能在所提供的path中find? 无论如何,正如你可以告诉我只是想提供一个文件,这是一个app.js的sibling (这是res.sendFile(…调用正在作出的文件格式) 我也试过: res.sendFile('escape_iframe.html'); 我得到: path must be absolute or specify root to res.sendFile 我究竟做错了什么 ?

如何打开控制台与Express应用程序进行交互?

我如何打开一个控制台来与我的Express应用程序进行交互? 我试图testing一些方法是否可以创build模型。 我正在使用SequelizeJS,但这对于这个问题的答案应该没有关系。 我习惯了Rails,我可以做$ heroku run rails console然后与我的应用程序中的模型进行交互。 我想在Express中做同样的事情。

Sailsjs中间件parsingres.body

我是JS新手,并开始使用sails框架。 我需要parsing中间件中的http res体来将工作放在芹菜队列中。 我已经尝试使用skipper-按照文档 – 但我总是得到res.body的价值未定义。 当我login回复时,我只能得到关于相同的元信息。 下面是我正在尝试的中间件代码 – 有人可以让我知道我做错了什么? order: [ 'startRequestTimer', 'cookieParser', 'session', 'requestLogger', 'bodyParser', 'handleBodyParserError', 'compress', 'methodOverride', 'poweredBy', '$custom', 'router', 'www', 'favicon', '404', '500' ], requestLogger: function (req, res, next) { var start = (new Date().getTime()); res.on('finish', function(){ console.log(res.body) }); return next(); }, bodyParser: require('skipper') PS:我没有挂上队长,只要能够parsing结果的身体就好了。 谢谢!

摩卡testing案例抛出错误:预计200“OK”,得到403“禁止”

我正在使用mochajs来处理我的平均应用程序服务器端testing用例。testing用例显示错误, Error: expected 200 "OK", got 403 "Forbidden" 。 我试图在我试图testing的函数内部使用控制台日志,但他们从来没有得到执行。 我无法找出问题。 有人可以帮我弄这个吗。 我的控制器 exports.signin = function(req, res) { req.body.username = new Buffer(req.body.username, base64').toString('ascii'); User.findOne({ username: req.body.username.toLowerCase() }, function(err, user) { if (err) { //do something } else if (!user) { //do something } else { //do something } }); }; 我的testing案例 it('should be able to […]

节点快速安装错误

您好,我正在尝试安装Node Express Framwork。 但它的投掷跟随错误 rajdeep@rajdeep-Lenovo-G50-80:/var/www/mynode$ npm install -g express-generator npm WARN locking Error: EACCES, open '/home/rajdeep/.npm/_locks/express-generator-981ece2c3651799f.lock' npm WARN locking at Error (native) npm WARN locking /home/rajdeep/.npm/_locks/express-generator-981ece2c3651799f.lock failed { [Error: EACCES, open '/home/rajdeep/.npm/_locks/express-generator-981ece2c3651799f.lock'] npm WARN locking errno: -13, npm WARN locking code: 'EACCES', npm WARN locking path: '/home/rajdeep/.npm/_locks/express-generator-981ece2c3651799f.lock' } npm ERR! Linux 3.16.0-30-generic npm ERR! argv […]

Jade html在Express.js中redirect后没有更新

我目前在使用Jade的模板引擎和连接闪存在Express.js显示Flash消息时遇到了一些麻烦。 我只是试图刷新错误信息,当用户试图添加一个新的用户对象到我的数据库已经存在。 但是,在调用router.post并redirect到索引(下面的代码)之后,我的页面上没有显示Flash消息。 通过各种console.log和debugging,我发现我发布的数据确实发布正确,并且正在设置flash消息。 我发现,在redirect,所有正确的数据传递到Jade模板,但variables不被更新文件本身。 我现在想知道,如果这是一个会议相关的问题,或者只是一些Flash / Jade / Express相关,我完全忽略? 在下面的代码中,我logging会话数据以及将闪存消息设置为一个variables。 如果Flash消息的数组是空的(例如,在页面加载时),则将数组设置为具有这样的消息。 如果Flash消息(s)数组包含闪存消息,则testing数组将被设置为一条消息。 index.js : router.get('/', function(req, res, next) { console.log(req.session); var testArray; var errorMessages = req.flash('user-error'); if (errorMessages.length === 0) testArray = ['errorMessages is empty']; else testArray = ['errorMessages contains a message now']; console.log(errorMessages); console.log(testArray); res.render('index', { message: errorMessages, tester: testArray, …other irrelevant vars […]

如何获得快速路由到angularjs文件工作

背景 我正在尝试使用angularjsfile upload,并试图将其与nodejs保存在文件中。 这整个设置我试图在我的本地服务器。 我的索引文件到angularjs部分位于名为portal / standards.html的文件夹内 我试图启动服务器使用快递与根目录server.js中的文件,下面是我试图做的redirect。 Server.js app.get('/', function(req, res) { res.sendFile('portal/standards.html' , { root : __dirname}); }); 问题 当我使用上面的快速服务器redirect时,可以正常工作的standards.html工作正常。 我是nodejs服务器端的新手。 下面是我的错误,我的CSS和JS文件的path由于某种原因被打破(尽pipe它直接加载时工作正常) 我的HTML <link href="../libraries/common/bootstrap.css" rel="stylesheet"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <link rel="stylesheet" href="../libraries/common/normalize.css" /> <link rel="stylesheet" href="../libraries/floating-label/floating-label.css" /> <link rel="stylesheet" href="../libraries/top-menu/yamm.css"> <link href="momtest/portal/css/portal.css" rel="stylesheet"> <link href="css/template-wizard.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css">

如何正确使用passport.js实现serializeUser?

好的,所以我只是进入了MEAN堆栈,我试图用Passport.js构build一个应用程序。 我只是开始用户序列化来维护会话。 在他们的例子中,Passport使用这个序列化和反序列化: passport.serializeUser(function(user, done) { done(null, user.id); }); passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); 所以,我的问题是:这个例子被认为是安全的? 如果我理解了这个权利,那么这不是说客户端可以伪造用户标识以login为具有该标识的用户? 我想我要问的是,他们的例子被认为是“安全的”,是一种正确的做事方式,或者是希望你改变这些function来产生独特的序列化。 如果这被认为是安全的,那么我想我错过了一些关于如何工作的东西,我很乐意填补。 另一方面,如果这是不安全的,我希望自己写一些函数来代替这些函数,那么下面这样做是否有效和安全: 在用户序列化后,生成一个随机散列并将其放入用户的数据库条目中。 随机哈希是代表该用户的序列号。 在反序列化之后,查找数据库中的随机哈希并返回相应的用户。 如果没有发现散列抛出某种错误。 用户注销时,从数据库中的条目中删除其串行散列。 如果直到这里我的逻辑是有效的,那么生成这个随机哈希的正确方法是什么?

在express中访问路由文件夹中的公共静态文件

我试图从公用文件夹访问一个静态的“home.html”文件。 该应用程序的体系结构是: 上市 home.html的 路线 index.js 意见 myapp.js myapp.js: var express = require('express'); var path = require('path'); var routes = require('./routes/index'); var app = express(); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); index.js: var express = require('express'); var router = express.Router(); router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); […]