标签: security

存储过程可以防止 SQL 注入吗?

存储过程真的可以防止针对 PostgreSQL 数据库的 SQL 注入攻击吗?我做了一点研究,发现即使我们只使用存储过程,SQL Server、Oracle 和 MySQL 也不能安全地抵御 SQL 注入。但是,这个问题在 PostgreSQL 中不存在。

PostgreSQL 核心中的存储过程实现是防止 SQL 注入攻击还是其他什么?或者即使我们只使用存储过程,PostgreSQL 是否也容易受到 SQL 注入的影响?如果是这样,请给我举个例子(例如书籍、网站、论文等)。

postgresql security sql-injection

85
推荐指数
5
解决办法
1万
查看次数

如何在 SQL Server 2008 中分配整个 Active Directory 组的安全访问权限?

我想在我的内部应用程序中使用集成安全性,这些应用程序都在一个域中。不幸的是,我一直无法让它正常工作。我想在 SQL Server 中为整个 Exchange (Active Directory) 组分配一个角色,以便对某些表进行读/写访问。这样我就不必在有人被雇用时创建操作员或在有人被解雇时删除操作员。这可能吗?我将采取哪些步骤来做到这一点?

sql-server-2008 security sql-server role active-directory

41
推荐指数
2
解决办法
12万
查看次数

MySQL:为什么 mysql.db 中有“测试”条目?

最近,我发布了一个关于 mysql.db 的问题的答案

然后,我开始想我应该问每个人这个问题:

多年来,我一直注意到在安装 MySQL 5.0+ 时,mysql.db填充了两个条目,允许匿名用户访问测试数据库。

您可以通过运行此查询来查看它:

mysql> select * from mysql.db where SUBSTR(db,1,4) = 'test'\G
*************************** 1. row ***************************
                 Host: %
                   Db: test
                 User:
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: N
         Execute_priv: N
*************************** 2. row ***************************
                 Host: %
                   Db: test\_%
                 User:
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y …
Run Code Online (Sandbox Code Playgroud)

mysql security

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

该登录名已有一个不同用户名的帐户

当我执行此 SQL 时:

USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

该登录名已有一个使用不同用户名的帐户。

我怎么知道我的登录帐户的这个不同的用户名是什么?

security sql-server logins

33
推荐指数
1
解决办法
8万
查看次数

DBA 新工作的第一天 - 检查备份和安全性 - 如何?还应该检查什么?

通常,当我在新环境中开始时,我倾向于检查备份在哪里,最后一次完整的时间,最后一次应用的还原时间,我也会检查安全性。

我这样做的方式是通过 T-SQL。

检查备份

        ;with Radhe as (
            SELECT  @@Servername as [Server_Name],
            B.name as Database_Name, 
            ISNULL(STR(ABS(DATEDIFF(day, GetDate(), MAX(Backup_finish_date)))), 'NEVER') as DaysSinceLastBackup,
            ISNULL(Convert(char(11), MAX(backup_finish_date), 113)+ ' ' + CONVERT(VARCHAR(8),MAX(backup_finish_date),108), 'NEVER') as LastBackupDate
            ,BackupSize_GB=CAST(COALESCE(MAX(A.BACKUP_SIZE),0)/1024.00/1024.00/1024.00 AS NUMERIC(18,2))
            ,BackupSize_MB=CAST(COALESCE(MAX(A.BACKUP_SIZE),0)/1024.00/1024.00 AS NUMERIC(18,2))
            ,media_set_id = MAX(A.media_set_id)
            ,[AVG Backup Duration]= AVG(CAST(DATEDIFF(s, A.backup_start_date, A.backup_finish_date) AS int))
            ,[Longest Backup Duration]= MAX(CAST(DATEDIFF(s, A.backup_start_date, A.backup_finish_date) AS int))
            ,A.type
            FROM sys.databases B 

            LEFT OUTER JOIN msdb.dbo.backupset A 
                         ON A.database_name = B.name 
                        AND A.is_copy_only = 0
                        AND (A.type = 'D')  --'D' full, 'L' …
Run Code Online (Sandbox Code Playgroud)

security sql-server backup restore sql-server-2014

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

从未知来源恢复备份的安全隐患?

场景:您收到了一个数据库备份,并被告知将其还原到服务器(该服务器已经托管了其他数据库),但没有提供有关备份包含的内容或源是否应受信任的有用信息。

问题 1:恢复很可能是恶意的备份有什么潜在影响?

问题 2:您可以采取哪些措施来保护您的服务器/其他数据库中的数据免受恢复潜在恶意备份的影响?RESTORE VERIFYONLY似乎是一个很好的第一步。最终的答案可能是“在无法访问外部世界的沙箱 VM 中恢复数据库”,但让我们假设该选项不在表中。在这种情况下还应该做什么?

security sql-server backup

32
推荐指数
6
解决办法
2484
查看次数

SQL Server 与新 TLS 标准的兼容性

  • 主要浏览器正在超越 SSL3.0 和 TLS1.0 。
  • PCI 安全委员会已宣布将这些协议视为足够强的加密的终止日期。

我们需要摆脱这些协议,使用更新更强的协议。在 Windows 服务器上,您可以非常轻松地禁用这些旧协议,而仅提供 TLS1.1 或更高版本。但是,正如其他地方所述,如果禁用了这些较低的协议,Microsoft SQL Server 2008 R2 和 SQL Server 2012(至少是标准版)都将无法启动。但是,MS SQL Server 的版本越来越多。有 SQL Server Standard、Business Intelligence、Enterprise、Express、Web 和 Compact 版本。当然还有 SQL Server 2008、2012、2014 和(预发布)2016。

这些版本中哪些支持或将仅支持使用 TLS1.1 或更高版本的协议?

security sql-server connectivity ssl

30
推荐指数
2
解决办法
4万
查看次数

为什么操作系统身份验证被认为是 Oracle 数据库的安全性差?

根据Oracle 数据库安全指南,Oracle 正在弃用 OS 身份验证,其中说

请注意,REMOTE_OS_AUTHENT 参数在 Oracle 数据库 11g 第 1 版 (11.1) 中已弃用,保留只是为了向后兼容。

此外,大多数安全信息和工具都认为 操作系统(外部)身份验证是一个安全问题。我试图理解为什么会这样。以下是我看到的操作系统身份验证的一些优点:

  1. 如果没有操作系统身份验证,应用程序必须将密码存储在各种应用程序中,每个应用程序都有自己的安全模型和漏洞。
  2. 域身份验证必须是安全的,因为如果不是,那么数据库安全只会减慢对数据库的访问,但无法阻止它。
  3. 只需记住一个域密码的用户可以更轻松地创建更安全的域密码,而不是随着他们必须连接到的不同数据库数量的增加而创建更不安全的数据库密码。

oracle security oracle-11g-r2

29
推荐指数
2
解决办法
2万
查看次数

为什么允许每个人都使用 sa 登录名是不好的做法?

甚至 Microsoft也不鼓励使用 SQL Server 身份验证模式,但我们的应用程序需要它。

我读过最好的做法是不要让用户sa直接使用登录名,而是使用 Windows 身份验证并允许这些帐户(或帐户组)系统管理员权限。

  • 本质上不是一回事吗?有什么优点/缺点?
  • 最佳实践如何提高我的 SQL Server 实例的安全性?
  • 这仅适用于生产实例,还是也适用于我们的内部开发实例?

security sql-server

25
推荐指数
5
解决办法
1万
查看次数

怎么重置sa密码?

我在一台机器上丢失了sa密码,当我直接使用admin组中的帐户登录机器时,SQL Server Management Studio将不允许我使用Windows身份验证登录。

我的计划是简单地登录服务器,通过 Windows 身份验证连接,然后重置 sa 以使用新密码。由于我无法通过 Windows 身份验证连接,这将不起作用。

我还可以如何重置 sa 密码?

security sql-server-2000

23
推荐指数
2
解决办法
2万
查看次数