标签: database-security

如果不需要站点登录,是否可以使数据库(Cloud Firestore)不安全?

我正在建造一个游戏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

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

如何使用ASP.NET MVC2和MS SQL Server在共享数据库中实现Tenant View Filter安全模式

我开始在ASP.NET MVC2中构建一个SaaS业务应用程序,但在开始之前,我想建立一个良好的架构基础.

我将采用共享数据库和共享模式方法,因为数据架构和业务逻辑将非常简单,效率和成本效益是关键问题.

为了确保租户之间良好的数据隔离,我想实现租户视图过滤器安全模式(请看这里).为此,我的应用程序必须根据登录到应用程序的用户模拟不同的租户(DB登录).登录过程需要尽可能简单(它不是企业级软件) - 因此客户只应输入他们的用户名和密码.

用户将通过自己的子域(使用子域路由)访问他们的数据,如http://tenant1.myapp.comhttp://tenant2.myapp.com

满足此方案的最佳方法是什么?

security saas database-security multi-tenant asp.net-mvc-2

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

如何在ADO.NET中安全地创建查询,其中选择的表更改?

在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功能?

c# sql ado.net sql-injection database-security

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

DataSource通过参数+安全性

我的问题更多地涉及其实施的安全性,而不仅仅是技术问题.

我已经开发了所有报告并且在Reporting Server上.应用程序使用ASP.NET中的ReportViewer Control来使用它们.

鉴于这些报告可能具有不同的DataSource,我在报告中为DataSource创建了一个参数,并将connectionString应用程序作为参数发送到报告中.

到目前为止一切都很好,但是,这是我的问题出现的地方.由于我花了一个具有参数用户和密码的ConnectionString,我在这里不会有安全漏洞?

我想得到你的意见,如果有人有更好的实施方式,请告诉我.

security connection-string database-security reporting-services ssrs-2008

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

转义 knex mysql 查询语句

总的来说,我对 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使用此处描述的函数转义条件中的是否足以转义该查询?在这种情况下还有什么需要注意的?

mysql database escaping database-security knex.js

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

不同的Redis数据库有不同的密码?

Redis 具有身份验证功能,也可以使用不同的数据库,但这些功能能否以安全的方式组合在一起?

从MySQL我知道有一个用户管理,多个用户可以有多个密码,并且只能拥有一个数据库的权限。

出于安全原因,我希望在 Redis 中拥有类似的功能,因为目前我可以使用requirepass,但我必须将其添加到每个想要连接到 Redis 的应用程序中。(至少有一种方法可以使用多个密码吗requirepass
我可以使用应用程序连接到一个数据库,但据我所知,这个应用程序也可以切换到另一个数据库。(我至少可以以某种方式阻止这种切换吗?)

出于性能原因,我想避免并行运行多个 Redis 实例。

database security database-security redis

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

PDO ... SET NAMES utf8 危险吗?

看这里: http: //www.php.net/manual/en/mysqlinfo.concepts.charset.php

我明白使用

设置名称 utf8

这不是一个好主意,但尚不清楚:

  1. 有什么问题吗?
  2. 如何避免呢?
  3. 哪个实际上是在 PHP 3.6 或更高版本中为一个(或所有)PDO 连接设置字符集的解决方案?

我担心代码很危险:

$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)

谢谢!

php mysql pdo utf-8 database-security

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

PHP PDO访问mysql

我经历了将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个人同时注册时,我希望它安全有效.一切都好看吗?

php mysql database pdo database-security

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

SQL查询作为参数发送的危险?

基本问题.如果我有一个表格要求用户提供他们的姓名,电子邮件和评论,我将这些条目存储在数据库中...如果有人输入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存储过程来处理插入.

sql sql-server sql-injection database-security

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

根据规则获取文档名称

我正在寻找在我的 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)

database database-security firebase google-cloud-firestore

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

关于网站和数据库安全的论文 - 需要一些指示

我现在正在大学的最后一年学习论文.我需要研究的领域之一是安全性 - 用于网站和数据库.我目前有以下部分:

  • 网站
    • 表单安全性 - 例如数据验证.本节更多的是关于尽可能地防止合法用户所犯的错误,而不是阻止黑客,例如将字段与正则表达式进行比较,并为发生的任何错误提供有意义的反馈,以便再次阻止它.
    • 约束.例如,如果值必须为true或false,则使用复选框.如果它可能是多个值中的一个,那么使用下拉列表或一组无线电盒,依此类推.如果值不可预测,则使用正则表达式来限制允许输入的字符,并限制字符串的长度,有时限制格式(例如日期/时间,邮政编码等).
    • 有时您可以限制表单的权限.这是因为您确切地知道谁(无论是人名还是一群人 - 例如管理员或员工)需要访问表单.限制权限将阻止公众成员访问表单.
    • 可能被恶意使用或导致网站行为不正确的符号或字符串(例如脚本标记)应被过滤掉或以html编码.
    • 验证码图像可用于防止自动化系统填写和提交表单.
    • 文件上传存在一些问题 - 例如使用双扩展 - 这可能允许黑客上传恶意文件.
  • 数据库(这还没有完成,但我计划的部分列在下面)
    • SQL语句与存储过程
    • 当其中一个变量包含特定字符或字符组时抛出错误(我无法记住它们是什么字符,但在我尝试将html或其他内容输入文本区域之前,我已经看到一条消息向我抛出).
    • SQL注入 - 以及它的方法,以及一些示例.

有没有人有任何关于我可以去哪些关于这些领域或我可以涵盖的其他安全领域的可靠信息的提示和提示?

提前致谢.

问候,

理查德

PS在安全方面,我是一个完整的新手,所以请耐心等待我.如果我提出的任何信息是错误的或可能是分段的,那么请随时说出来.

security database-security

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

如果存储在SQL Server中,哪些HTML标记会被视为危险?

考虑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&#010;script:alert('hello');">
<img src="java&#X0A;script:alert('hello');">
Run Code Online (Sandbox Code Playgroud)

攻击者还可以<style>通过更改MIME类型来使用标记注入脚本,如下所示.

<style TYPE="text/javascript">
  alert('hello');
</style>    
Run Code Online (Sandbox Code Playgroud)

最终有两个问题:

  1. 从INSERT语句本身处理此问题的最佳方法.
  2. 从代码隐藏处理这个问题的最佳方法.

javascript sql-server asp.net security database-security

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