数据库安全

SQL注入攻击

你。 提交于 2020-01-31 09:27:40
这是开发人员预期的做法,通过社会保险号码来查询数据库中作者的信息。但因为参数值没有被正确地加码,黑客可以很容易地修改查询字符串的值,在要执行的值后面嵌入附加的SQL语句 。譬如, ' URL to the page containing the above code http://mysite.com/listauthordetails.aspx?SSN=172-32-9999';DROP DATABASE pubs -- ' SQL Query executed against the database SELECT au_lname, au_fname FROM authors WHERE au_id = '';DROP DATABASE pubs --   注意到没有,可以在SSN查询字符串值的后面添加“ ';DROP DATABASE pubs -- ”,通过 “;”字符来终止当前的SQL语句,然后添加了自己的恶意的SQL语句,然后把语句的其他部分用“--”字符串注释掉。因为是手工在编码里构造SQL语句,最后把这个字符串传给了数据库,数据库会先对authors表进行查询,然后把我们的pubs数据库删除。“砰(bang)”的一声,数据库就没了!   万一你认为匿名黑客删除你的数据库的结果很坏,但不幸的是,实际上,这在SQL注入攻击所涉及的情形中算是比较好的

【转】mysql安全基线设置

自作多情 提交于 2020-01-30 22:12:31
一、禁用local-infile选项 | 访问控制 禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力 编辑Mysql配置文件/etc/my.cnf,在[mysqld] 段落中配置local-infile参数为0,并重启mysql服务: ``` local-infile=0 ``` 二、删除'test'数据库 | 服务配置 测试数据库可供所有用户访问,并可用于消耗系统资源。删除测试数据库将减少mysql服务器的攻击面。 登陆数据库执行以下SQL语句删除test数据库: ``` DROP DATABASE test; flush privileges; ``` 三、确保没有用户配置了通配符主机名 | 身份鉴别 避免在主机名中只使用通配符,有助于限定可以连接数据库的客户端,否则服务就开放到了公网 执行SQL更新语句,为每个用户指定允许连接的host范围。 1. 登录数据库,执行`use mysql;` ; 2. 执行语句`select user,Host from user where Host='%';`查看HOST为通配符的用户; 3. 删除用户或者修改用户host字段,删除语句:`DROP USER 'user_name'@'%';` 。更新语句:`update user set host = <new_host> where host = '%'

MongoDB 2.2安全

别说谁变了你拦得住时间么 提交于 2020-01-29 23:57:09
超级管理员 为了更安全的访问mongodb,需要访问者提供用户名和密码,于是需要在mongodb中创建用户 采用了角色-用户-数据库的安全管理方式 常用系统角色如下: root:只在admin数据库中可用,超级账号,超级权限 Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 创建超级管理用户 use admin db.createUser({ user:'admin', pwd:'123', roles:[{role:'root',db:'admin'}] }) 启用安全认证 修改配置文件 sudo vi /etc/mongod.conf 启用身份验证 注意:keys and values之间一定要加空格, 否则解析会报错 security: authorization: enabled 重启服务 sudo service mongod stop sudo service mongod start 终端连接 mongo -u 'admin' -p '123' --authenticationDatabase 'admin' 普通用户管理 使用超级管理员登录,然后进入用户管理操作 查看当前数据库的用户 use test1 show users 创建普通用户 db.createUser({ user:'t1', pwd:'123', roles:[{role

翻译:A Role-Based Access Control (RBAC) system for PHP

房东的猫 提交于 2020-01-21 11:41:05
A Role-Based Access Control (RBAC) system for PHP PHP基于角色的访问控制系统设计 By Tony Marston 13th May 2004 Amended 9th March 2008 介绍 什么是“访问控制”? 什么是“基于角色”? - 基于等级的访问控制 - 基于用户的访问控制 - 基于组的访问控制 - 基于责任的访问控制 什么是“菜单系统”? 我当前的设计 结论 其它类型的访问控制系统 修正历史 介绍 “访问控制”系统,即“安全系统”,或“权限系统”。在我长期的工作中我曾经参与设计和开发了几个这样的系统: 20世纪80年代我用古典的 COBOL 设计编写了一个“ 菜单安全系统 ”。 20世纪90年代我又用很少人知道的第四代语言UNIFACE编写了这个“ 菜单安全系统 ”。 2003年我使用PHP+MySQL重写了这个” 菜单安全系统 “用于管理Web应用程序的安全。 这篇文章将描述一些早期我使用过的系统中的特点,并解释我当前的设计的主要特性。 什么是“访问控制”? 在单用户应用程序如典型的桌面应用程序中不需要任何访问控制,用户可以访问程序的全部功能。然而,当一个程序被部署到多台联网的机器上,并被多人使用时,不是所有人都拥有是用应用程序所有功能的权限了。这种情况下,就需要一个适当的方法来控制某些功能只能让被授权的人访问

从零开始编写自己的C#框架(25)——网站部署

梦想的初衷 提交于 2020-01-18 20:08:53
  导航   1、关掉访问保护   2、发布网站   3、复制网站到服务器   4、添加新网站   5、设置网站访问权限   6、设置文件夹访问权限   7、控制可更新文件夹执行权限   8、设置“应用程序池”.net版本与模式   9、附加数据库   10、添加数据库访问用户   11、设置数据库链接   12、 部署注意事项   对于网站的安全部署方面,大家请看我以前写的《 服务器安全部署文档 》里面已基本上将服务器相关的安全设置都讲到了,照着里面的操作一般的黑客是比较难攻击进来的(代码漏洞除外),而本章的部署则是是该篇设置好的基础上来创建站点的。   1、关掉访问保护    打开安全防护软件,关掉访问保护(由于做了策略,在服务器上未经授权无法创建dll和exe文件,不关掉的话就没办法拷贝网站的dll文件到服务器里)      记得网站添加成功后重新开启访问保护   2、发布网站   打开解决方案,对Web项目按右键,在弹出的菜单中点击“发布”—— 这样生成的是Debug版部署包,如果发布到正式环境的话,可以点击“生成部署包”来发布正式版      选择发布方法为文件系统,点击发布按键发布网站      将红框框住的文件夹内容复制到发布成功的文件夹中(由于这些文件夹没有包含到项目中,所以发布时并没有一起发布出来——这样做是为了打开解决方案时,不用加载太多内容

使用navicat连接mysql时10060错误

旧城冷巷雨未停 提交于 2020-01-13 09:13:11
问题描述: 在使用navicat连接mysql数据库时,出现错误:2003 - cant connect ro mysql server on xxx (10060 unknown error),如图 navicat连接mysql 10060 unknown error 解决步骤: 在服务器商的后台,配置安全组,放行数据库端口号,默认的是3306。此步骤,不同服务商操作也不同。我的腾讯云是在后台的 云服务器--->安全组中。 修改服务器主机的防火墙配置。打开宝塔--->安全,放行数据库端口号。如图 宝塔安全放行端口号 3. 修改服务器mysql数据库user表,配置为允许远程访问。如图 mysql update user set host update user set host = '%' where user = 'root'; 4.完成。 navicat连接成功 来源: CSDN 作者: 游戏乐趣 链接: https://blog.csdn.net/qq_26902237/article/details/103904229

web安全 sql注入

家住魔仙堡 提交于 2020-01-12 21:39:37
一、原理 SQL注入的本质就是把用户的输入参数,未加过滤的当作sql被数据库执行。 二、分类 1、常见的sql注入按照参数类型可分为两种: 数字型和字符型。 当发生注入点的参数为整数时,比如 ID,num,page等,这种形式的就属于数字型注入漏洞。同样,当注入点是字符串时,则称为字符型注入,字符型注入需要引号来闭合。 2、也可以根据数据库返回的结果,分为回显注入、报错注入、盲注。 回显注入:可以直接在存在注入点的当前页面中获取返回结果。 报错注入:程序将数据库的返回错误信息直接显示在页面中,虽然没有返回数据库的查询结果,但是可以构造一些报错语句从错误信息中获取想要的结果。 盲注:程序后端屏蔽了数据库的错误信息,没有直接显示结果也没有报错信息,只能通过数据库的逻辑和延时函数来判断注入的结果。根据表现形式的不同,盲注又分为based boolean和based time两种类型。 3、按照注入位置及方式不同分为: post注入,get注入,cookie注入,盲注,延时注入,搜索注入,base64注入,无论此种分类如何多,都可以归纳为以上两种形式。 来源: https://www.cnblogs.com/shwang/p/12184727.html

mysql数据库安全加固

风格不统一 提交于 2020-01-10 04:05:46
数据库禁止root用户远程登录 登录数据库 use mysql; select host,user from user; 查看root用户的host是否为localhost,如果有host为%表示所有ip可以访问,执行 delete from user where user="root" and host="%"; 增加一个新用户管理数据库 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; username为用户名 host为%时表示所有,有可以使用172.20.0.0/255.255.0.0 password为用户密码 GRANT privileges ON databasename.tablename TO 'username'@'host'; privileges表示权限,包含SELECT , INSERT , UPDATE等,全部使用ALL 该命令授权的用户不能给其它用户授权,如果想让该用户可以授权使用 GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); 修改用户密码

MongoDB 4.2新特性:分布式事务、字段级加密、通配符索引、物化视图

徘徊边缘 提交于 2019-12-29 21:58:04
MongoDB 4.2已经发布,我们来看看它增加了哪些新特性?分布式事务?数据库加密?通配符索引? 在2019年MongoDB World大会上,CTO Eliot Horowitz介绍了MongoDB 4.2中的一些功能,这些功能扩展了其在数据库技术方面的领先地位:分布式事务(Distributed Transactions),字段级加密(Client Side Field Level Encryption),通配符索引(Wildcard Indexing)、按需物化视图(Materialized Views)。 这些都是重大的改进,表明MongoDB在企业级功能方便更加完善。 MongoDB 4.2提升了事务和分析技术水平。它提供大规模的分布式事务的ACID担保和复杂的数据处理流程,还有最先进的加密控制保护机制。我们可以在任何地方运行MongoDB4.2:在本地数据中心,云上、混合云、Atlas云上。我们可以获得阿里云、AWS,Azure和GCP可用的完全托管,云原生的MongoDB服务。阿里云全球第一个实现了MongoDB异地多活架构。可以支持互联网跨国公司的大规模出海业务。 现在使用MongoDB的公司越来越多了,技术架构方案也越来越成熟。MongoDB新特性也是为了满足更多的企业级业务场景需求。 1. MongoDB 4.2 新特性 先来大体上看看有哪些改进,作为4

安全测试工具之sqlmap

有些话、适合烂在心里 提交于 2019-12-23 10:55:31
介绍 官方网址: http://sqlmap.org   Github地址: https://github.com/sqlmapproject/sqlmap   中文使用说明: http://www.91ri.org/6775.html Sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。 支持的数据库:MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MaxDB SQL注入技术:boolean-based blind, time-based blind, error-based, UNION query, stacked queries and out-of-band 枚举数据:users, password hashes, privileges, roles, databases, tables and columns 安装 直接在Linux服务器在线安装(比较慢),也可以去官网下载后解压。 git clone https://github.com