我在用流星做一个消息应用程序。出于安全原因,我禁用了从客户端调用的任何插入/更新/删除。现在插入消息的唯一方法是使用方法。
Meteor.methods({
sendMessage: function (text) {
Messages.insert({ userId: Meteor.userId(), roomId: Rooms.findOne()._id, name: Meteor.users.find(Meteor.userId()).fetch()[0].profile.name , message: text });
}
});
如果是这种情况,我将不得不在函数上包含额外的参数,这将使它更加不安全。
我可能不明白这里的方法。
你在正确的轨道上。使用rooms.findone()
在服务器上肯定没有意义,坦率地说,在客户端上也没有那么好(如果您发布了更多的一个房间,这将会破坏)。您需要将消息和房间id都传递给您的方法。该方法应验证插入是否有意义。例如,此用户当前是否在房间中。假设在room.members
中跟踪,则SendMessage
可以按以下方式实现:
Meteor.methods({
sendMessage: function(message, roomId) {
check(message, String);
check(roomId, String);
if (!this.user)
throw new Meteor.Error(401, 'You must be logged in.');
if (_.isEmpty(message))
throw new Meteor.Error(403, 'Message must not be empty.');
var room = Rooms.findOne(roomId);
if (!room)
throw new Meteor.Error(404, 'Room not found.');
if (!_.contains(room.members, this.userId))
throw new Meteor.Error(403, 'You are not in the room.');
var name = Meteor.user().profile.name;
return Messages.insert({
userId: this.userId,
roomId: roomId,
name: name,
message: message
});
}
});
并非所有这些检查都是必要的,但是这个示例应该让您了解一个方法可以提供的丰富的验证集。
问题内容: 我有 在一个文件中 在另一个文件中。 我得到了错误。很明显,我必须在文件中定义而不是将它们分开。但是Meteor如何处理单独文件中的代码?我可以访问某些对象和变量,而另一些则无法访问。 问题答案: 当您以经典的JavaScript方式定义变量时: 在文件的根目录,Meteor使用IIFE将其范围限定为文件。 如果要定义全局变量,只需不要编写,就可以了: 这将定义默认情况下,所有应用程序
我在尝试在Spring Boot应用程序中启用全局方法安全性时遇到了一些问题。或多或少我有这样的配置: @Secure注释在服务中工作正常,但在控制器中不行,所以我读到这里(http://docs.spring.io/spring-security/site/faq/faq.html#faq-method-security-in-web-context)我认为这是因为方法安全性只在根应用程序上下文
瑞星卡卡安全浏览器是一款基于Firefox 3开源代码而设计的浏览器,为用户提供了最佳的Web浏览体验。 性能表现:由于建立在功能强大的新的Gecko 1.9引擎之上,瑞星卡卡安全浏览器整体表现更安全、更易用、更个性化。 安全特性:瑞星卡卡安全浏览器的安全性得到了进一步提升。新的防木马、防网络钓鱼功能让你远离病毒、蠕虫、木马以及间谍软件的威胁。 可定制化:每个人都有自己特殊的上网习惯,瑞星卡卡安全
主要内容:渗透测试工作流程安全测试可视为对系统的受控攻击,以实际的攻击方式揭示安全漏洞或问题。安全测试的目标是评估IT系统的当前状态。它也被称为渗透测试或道德黑客攻击。 渗透测试分阶段进行,在本章中,我们将讨论完整的过程。应在每个阶段进行适当的记录,以便随时可以获得重现攻击所需的所有步骤。本文还可作为客户在渗透测试结束时收到的详细报告的基础。 渗透测试工作流程 渗透测试包括四个主要阶段 - 踩点阶段 扫描阶段 枚举阶段 渗
我们在hello-world-test的基础上,我们新建了一个名为method-security的 Gradle 项目。 本项目用于演示方法级别的安全设置。 build.gradle 修改 build.gradle 文件,让我们的method-security项目成为一个新的项目。 修改内容也比较简单,修改项目名称及版本即可。 jar { baseName = 'method-securi