假设我正在使用meteor.js构建应用程序,我只是从用户那里收集一些简单的表单数据.也许是对一个简单问题的回答.他们无需登录即可提交数据.
如何保护我的应用程序免受在Chrome控制台中创建js-loop的人员的攻击?
我可以通过这样做来保护删除和更新:
Formanswers.allow({
insert: function () {
return true;
},
update: function () {
return false;
},
remove: function () {
return false;
},
});
Run Code Online (Sandbox Code Playgroud)
如果用户已登录(我记得在我的应用程序中不是这种情况),我可以为每个插入时间戳并检查以下内容:
insert: function (userId, doc) {
if (userId && (Formanswers.findOnd({userid: userId, time: SOMETHING TIME SPECIFIC}).count() < 1)) return true;
},
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:是否有任何其他方式为匿名(未登录)用户获取唯一的userId-thing或IP地址或东西,所以我也可以对他进行上述检查?
谢谢!
假设我有这个Handlebars助手:
Handlebars.registerHelper('someRandomHelperCreatingALink', function(passedVarAndString, url) {
return '<a href="'+url+'">'+passedVarAndString+'</a>';
});
Run Code Online (Sandbox Code Playgroud)
并希望像这样使用它,我传递一个字符串和一个var作为第一个参数(user.name+' is a cool dude!'
):
{{{ someRandomHelperCreatingALink user.name+' is a cool dude!!' '/a/cool/url' }}}
Run Code Online (Sandbox Code Playgroud)
我的问题:这会以某种方式成为可能吗?
或者我必须为字符串添加额外的参数(这会觉得没必要)?像这样的东西:
Handlebars.registerHelper('someRandomHelperCreatingALink', function(passedVarAndString, url, extraUnnecessary) {
return '<a href="'+url+'">'+passedVarAndString+extraUnnecessary+'</a>';
});
{{{ someRandomHelperCreatingALink user.name '/a/cool/url' ' is a cool dude!!' }}}
Run Code Online (Sandbox Code Playgroud) 我在这里创建了一个轻量级测试的简单演示:http://jsfiddle.net/CGr9d/
当我使用Chrome开发工具记录内存使用情况时,我得到这个:http://cl.ly/LSDl,它基本上会上升到某一点然后再次下降并重新开始直到它再次达到之前的高点.
这是正常/好吗?有没有办法优化我的代码,以减少内存密集?
这是我的mousemove功能:
$('body').mousemove(function(e) {
//2000 is half the image width/height, of course used for centering
$('.light-circle').css({ backgroundPosition: (e.pageX-2000)+'px '+(e.pageY-2000)+'px' });
});
Run Code Online (Sandbox Code Playgroud)
谢谢.
是否可以在不先从中创建实例的情况下访问构造函数对象/函数的属性?
例如,假设我有这个构造函数:
function Cat() {
this.legs = 4;
};
Run Code Online (Sandbox Code Playgroud)
现在 - 没有创建一个新的cat实例 - 我想知道legs
构造函数中的值是什么.这可能吗?
(而且我不是在寻找类似的东西:var legs = new Cat().legs
.(让我们说新的Cat的实例化由于某种原因是超级CPU昂贵的.))
我需要在meteor.js应用程序中处理一些POST数据,有没有一种简单的方法可以做到这一点?
非常基本,如果它是一个PHP应用程序我只想要$ _POST变量.
假设我使用普通{{#each}}
循环在Meteor中循环一个数组.每个数组元素都是一个字符串,我每步使用输出字符串{{this}}
.到现在为止还挺好!如果我使用一个车把辅助检查typeof
为this
我去拿string
.甜!一切都应该如此.
但是,如果我添加{{#if something }}
-helper内{{#each}}
(在something
刚刚返回true,从而不断去和输出{{this}}
)的字符串仍然会看在HTML不错,但现在的是object
在typeof
检查!
这非常烦人,因为(typeof someVarINeedToTest === 'string')
我的所有代码现在都依赖于它将返回false.
难道我做错了什么?
或者这是一个真正的错误?
如果是这样的话:它是特定于Meteor还是Handlebars特有的bug?
谢谢!
哦:源链接再次.只需拉动并运行meteor
并查看浏览器控制台即可.
在php中,你可以使用标题来强制下载文件,也可以隐藏实际的文件位置等.
如果您只希望特定条件下的某些用户能够下载某些文件,这将非常有用.
我怎么能在流星中这样做?我玩过Node.js fs模块,并设法在客户端上检索文件的二进制版本.但是,我如何将其转换为下载的实际文件?
谢谢!