我正在建造一个游戏Angular和(有史以来第一次)我正在尝试添加一个高分表.我已经建立了一个Firebase帐户并使Firestore (Beta)数据库工作并连接起来.
我想要一个非常简单的高分系统.用户无需登录或创建帐户,您只需打开,播放,然后,如果您获得高分,请输入您的姓名,并将其记录并显示在表格中.
所以我的问题是 - 在不需要登录且仅保存基本名称/分数/时间戳数据的情况下,是否可以将我的安全规则保留如下,或者是否有更好的方法来构建它们?
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
Run Code Online (Sandbox Code Playgroud)
事实上,我得到一个警告,我的数据库对任何有参考的人开放,但在我的特殊情况下这真的很糟糕吗?有没有这个问题,我没有看到数据库newb?
任何建议都会很棒,因为这对我来说是一个新的(和复杂的)领域.
干杯
database security database-security firebase google-cloud-firestore
我开始在ASP.NET MVC2中构建一个SaaS业务应用程序,但在开始之前,我想建立一个良好的架构基础.
我将采用共享数据库和共享模式方法,因为数据架构和业务逻辑将非常简单,效率和成本效益是关键问题.
为了确保租户之间良好的数据隔离,我想实现租户视图过滤器安全模式(请看这里).为此,我的应用程序必须根据登录到应用程序的用户模拟不同的租户(DB登录).登录过程需要尽可能简单(它不是企业级软件) - 因此客户只应输入他们的用户名和密码.
用户将通过自己的子域(使用子域路由)访问他们的数据,如http://tenant1.myapp.com或http://tenant2.myapp.com
满足此方案的最佳方法是什么?
在ADO.NET中,您可以向命令对象添加参数,以将用户输入安全地添加到SQL查询中.SQL查询常见的其他谓词的等价物是什么?
我正在编写一个程序,它本质上是一个非常有限的OR映射器和SQL生成器(它主要关注具有元信息的数据库和符合该元数据的其他数据库).因此,我需要能够调用以下内容:
string sql = "select " + USER_SELECTED_COLUMNS +
" from " + USER_SELECTED_TABLE +
" where " + USER_CRITERIA;
Run Code Online (Sandbox Code Playgroud)
其中一些(如criteria)可信用户(我公司的其他开发人员)输入我的程序,而其他数据由不信任的用户(客户)通过他们的搜索等输入我的程序.
我想让这个程序安全,我知道上面的内容不是.目前我已经USER_SELECTED_COLUMNS用命令参数替换了,但是我无法找到CRITERIA和TABLEs的等价物.(或按订单列).是否有任何类似于SqlParameter我可以用于非选择谓词的ADO.NET功能?
我的问题更多地涉及其实施的安全性,而不仅仅是技术问题.
我已经开发了所有报告并且在Reporting Server上.应用程序使用ASP.NET中的ReportViewer Control来使用它们.
鉴于这些报告可能具有不同的DataSource,我在报告中为DataSource创建了一个参数,并将connectionString应用程序作为参数发送到报告中.
到目前为止一切都很好,但是,这是我的问题出现的地方.由于我花了一个具有参数用户和密码的ConnectionString,我在这里不会有安全漏洞?
我想得到你的意见,如果有人有更好的实施方式,请告诉我.
security connection-string database-security reporting-services ssrs-2008
总的来说,我对 knex 和数据库还很陌生,所以这是一个初学者问题。我在knex 文档中没有发现关于这一点的明确提及。非原始 knex 查询是否自动“安全”?
其次,对于原始查询,我有几个与此类似的原始语句:
var condition = _.map(ids, function(id) {
return '`id`=' + id;
}).join(' OR ');
knex('categories')
.whereRaw(condition)
.select('*')
.catch(_error.bind(null, cb))
.then(function(res) { ... });
Run Code Online (Sandbox Code Playgroud)
id使用此处描述的函数转义条件中的是否足以转义该查询?在这种情况下还有什么需要注意的?
看这里: http: //www.php.net/manual/en/mysqlinfo.concepts.charset.php
我明白使用
设置名称 utf8
这不是一个好主意,但尚不清楚:
我担心代码很危险:
$this->_conn = new PDO('mysql:host=host.name.blabla;dbname=my_database_name','username', 'password',array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
));
Run Code Online (Sandbox Code Playgroud)
谢谢!
我经历了将mysql_*代码转换为PDO代码的过程.我跑了它,检查它是否有效.我只是想要stackoverflow对它的审查,以确保我正确地杀死连接,我应该使用其他方法(例如交易),确保没有大量的安全漏洞.这是代码:
<?php
try {
$link = new PDO('mysql:****;dbname=****;charset=UTF-8','****','****');
$link->exec("INSERT INTO Registration (`First Name`, `Last Name`) VALUES ('$_POST[fname]', '$_POST[lname]')");
} catch(PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,它可以工作,但是当100个人同时注册时,我希望它安全有效.一切都好看吗?
基本问题.如果我有一个表格要求用户提供他们的姓名,电子邮件和评论,我将这些条目存储在数据库中...如果有人输入SQL查询会发生什么情况,例如:
DROP tablename
Run Code Online (Sandbox Code Playgroud)
在评论部分.
@Name,
@Email,
@Comments
INSERT INTO mytable (Name, Email, Comments) VALUES (@Name, @Email, @Comments)
Run Code Online (Sandbox Code Playgroud)
是否存在SQL注入的风险或者我是否完全安全?
SQL Server 2008存储过程来处理插入.
我正在寻找在我的 Firestore 数据库中添加规则。规则是如果文档等于request.auth.uid. 我不知道如何在规则中搜索我的文档名称。
这是我缺少这部分的代码:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{anyDocument} {
allow write: if request.auth != null && request.auth.uid == ?????????;
allow read
}
}
}
Run Code Online (Sandbox Code Playgroud) 我现在正在大学的最后一年学习论文.我需要研究的领域之一是安全性 - 用于网站和数据库.我目前有以下部分:
有没有人有任何关于我可以去哪些关于这些领域或我可以涵盖的其他安全领域的可靠信息的提示和提示?
提前致谢.
问候,
理查德
PS在安全方面,我是一个完整的新手,所以请耐心等待我.如果我提出的任何信息是错误的或可能是分段的,那么请随时说出来.
考虑CSRF,XSS,SQL Injection等问题......
站点:ASP.net,SQL Server 2012
我正在阅读MS的一个旧页面:https://msdn.microsoft.com/en-us/library/ff649310.aspx#paght000004_step4
如果我有一个参数化查询,并且我的一个字段用于保存HTML,那么在某些标签上进行简单替换是否可以实现?
例如,用户可以键入WYSIWYG textarea,使某些事物变粗,或者创建项目符号等.
我希望能够显示SELECT查询的结果,所以即使我HTMLEncoded它,它也必须是HTMLDecoded.
那个在场景列表中循环的UDF怎么样?我很好奇处理那个页面上提到的看似偷偷摸摸的最好方法:
引用:
攻击者可以使用HTML属性(如src,lowsrc,style和href)与前面的标记一起注入跨站点脚本.例如,标记的src属性可以是注入源,如以下示例所示.
<img src="javascript:alert('hello');">
<img src="java
script:alert('hello');">
<img src="java
script:alert('hello');">
Run Code Online (Sandbox Code Playgroud)
攻击者还可以<style>通过更改MIME类型来使用标记注入脚本,如下所示.
<style TYPE="text/javascript">
alert('hello');
</style>
Run Code Online (Sandbox Code Playgroud)
最终有两个问题: