redis访问权限控制,密码设置
redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护。
1.比较安全的办法是采用绑定IP的方式来进行控制。
代码如下 | 复制代码 |
bind 127.0.0.1 |
表示仅仅允许通过127.0.0.1这个ip地址进行访问。那么其实只有自己才能访问自己了,其他机器都无法访问他。
这段命令要去redis.conf里修改。
这里请注意
我们常用的启动方式src/redis-server
改为
代码如下 | 复制代码 |
src/redis-server redis.conf |
因为它需要加载配置文件。
这个方法有一点不太好,我难免有多台机器访问一个redis服务
2.设置密码,以提供远程登陆
代码如下 | 复制代码 |
redis.conf 找到 requirepass |
写上
requirepass yourpassword设置密码以后发现可以登陆,但是无法执行命令了。
代码如下 | 复制代码 |
src/redis-cli -h 192.168.1.121 keys * (error) ERR operation not permitted |
授权命令
auth 123456登陆带密码方式
./redis-cli -h 192.168.1.121 -a hzhutid由于redis并发能力极强,仅仅搞密码,攻击者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。(密码在 conf文件里是明文,所以不用担心自己会忘记)
图片保存数据库并不是一个明智的做法,我们多半是把图片保存到服务器,然后把图片地址保存到数据库,这样我们每次只要读出图片地址就可以显示了,但下面我还是来介绍一个图片保存到mysql数据库的问题解决办法。
代码如下 | 复制代码 |
require 'class/db.php'; $img = fread($fp, filesize($fileName)); $db->execute("insert db2.testimg (`img`) values ('$img') ;"); |
报错
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`?绶q?仳!????1丶>,Mo?'^WZ4in??T春??????U?楹\?' at line 1
代码如下 | 复制代码 |
$img = fread($fp, filesize($fileName)); |
继续报错
各种搜索,百度里的结果都是addslashes,要不就是addslashes也没有的。真是扯淡啊
base64_decode
$img = base64_encode($img);
插入成功。图片文件17.0k
出来进行base64_decode ,显示正常
找到个16进制的办法
$img = bin2hex($img);
有效,输出不用解密 。存入数据库很大 25K。比base64还坑爹呢。
再找。
后来,后来。发现phpmyadmin直接上传的图片文件可以用文件比base64的小。文件12.8k
翻phpmyadmin 源代码
common.lib.php文件183有个神奇的函数
代码如下 | 复制代码 |
function PMA_sqlAddslashes($a_string = '', $is_like = false, $crlf = false, $php_code = false) |
文件大小12.8K 和phpmyadmin的一样大。
例
前台(image.html):
代码如下 | 复制代码 |
<html> |
后台处理(upimage.php):
代码如下 | 复制代码 |
<?php |
显示图片(disimage.php):
代码如下 | 复制代码 |
<?php |
结论
PMA_sqlAddslashes好用 文件12.8k 和原来图片一样大
bin2hex 16进制 好用文件25K
base64_encode 好用,出来的文件需要base64_decode 17K
addslashes 不好用,继续报错(注明:在某些windows机器上addslashes好用)
连接MySQL数据库的两种方法:
(1)利用PHP的数据库函数连接
此方式是最常用的一种方式.
这里主要用到四个数据库函数:
mysql_connect () 建立与MySQL服务器的连接。
mysql_select_db ():选择MySQL服务器中的数据库供以后的数据查询操作query处理。
mysql_query ():送出query字符串以帮助MySQL做相关的处理或执行。
mysql_fetch_row ():用来将查询结果result单行移到数组变量中。数组的索引是数字
索引,第一个索引值是0。
(2)通过ODBC连接
PHP通过ODBC连接MySQL数据库主要用到四个函数:
Odbc_connect ():用来同ODBC数据源建立连接。
Odbc_do ():用来在建立连接之后执行数据库查询。
Odbc_result():用于取得当前记录行中某个字段的值。
Odbc_fetch_row ():用来把查询结果保存到数组,每个数组元素对应一条记录。
我们先来看PHP的数据库函数连接 方法实例
连接到一个 MySQL 数据库
在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。
在 PHP 中,这个任务通过 mysql_connect() 函数完成。
语法
mysql_connect(servername,username,password);参数 描述
servername 可选。规定要连接的服务器。默认是 "localhost:3306"。
username 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。
password 可选。规定登录所用的密码。默认是 ""。
代码如下 | 复制代码 |
<?php |
面向对象mysqli(详细教程)
代码如下 | 复制代码 |
|
pdo连接mysql(详细教程)
代码如下 | 复制代码 |
|
然后我们还可以使用ODBC连接数据库
代码如下 | 复制代码 |
|
mysql数据连接类
代码如下 | 复制代码 |
class Database { function Database($dbHost = SERVER, $dbUser = USER, $userPassword = PASSWORD, $database = DATABASE) { /* SQL:Select() 返回为false无结果 */ function Select($table, $columns, $condition = 1) { /* SQL:GetRows() 返回查询的记录总数 */ function GetRows($table, $condition = 1) { /* SQL:Insert() */ function Insert($table, $columns, $values) { /* SQL:Update() */ function Update($table, $setings, $condition) { /* SQL:Delete */ function Delete($table, $condition) { /* Halt():error message */ function Halt($msg) { switch ($db->dbType) { |
友情提示
如果出现连接mysql数据库中文乱码我们可以在连接数据库查询之前加上mysql_query("set names utf8"); 如果你是gbk就使用gbk编编码了
短语密码是phpmyadmin为了防止多个登录时出现混乱了,所以要求我们配置一下config.sample.inc.php中的 $cfg[\'blowfish_secret\'] 短语密码,下面我来给大家介绍解决办法。配置的phpmyadmin3.2.4用来管理MySQL数据库,登陆进入以后,页面下面提示:配置文件现在需要一个短语密码。
解决方法:编辑phpmyadmin目录里的config.inc.php文件,找到:$cfg['blowfish_secret'] = ' '; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
在$cfg['blowfish_secret'] = ' ';后面两个单引号内随便输入一些字符,以加强密码安全即可。
具体解决方法
1、将 phpMyAdmin/libraries/config.default.php中的
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = ''; |
改成
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = '111cn.net'; |
(注:其中的'111cn.net′为随意的字符)
2、在phpMyAdmin目录中,打开config.sample.inc.php,18行
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = ''; |
成
代码如下 | 复制代码 |
$cfg['blowfish_secret'] = '111cn.net'; |
(注:其中的'111cn.net′为随意的字符)
这个密码用于Cookies的加密,以免多个PhpMyAdmin或者和其他程序共用Cookies时搞混。
本文章来给各位同学介绍关于php下pdo的mysql事务处理应用实例,有需要了解的朋友可参考。
php+mysql事务处理的几个步骤:
1.关闭自动提交
2.开启事务处理
3.有异常就自动抛出异常提示再回滚
4.开启自动提交
注意:mysql只有这个InnoDB驱动是支持事务处理的,默认MyIsAM驱动不支持.
下面是实例代码:
代码如下 | 复制代码 |
<?php |
相关文章
- 这篇文章主要介绍了浅谈关于如何检测iOS14本地网络权限的一些思路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
- phpmyadmin是一款很不错的WEB对mysql数据库管理软件,如果你想创建数据库与设置用户权限我们必须操作用户的很高的权限,如ROOT权限,下面我来给大家介绍介绍。 先来配...2016-11-25
- 这篇文章主要介绍了C#判断程序是否是管理员权限运行的方法代码示例,本文直接给出实现代码例子,需要的朋友可以参考下...2020-06-25
- 本文我们将分享apache配置黑名单和白名单,apache层的账户权限控制,以及apache黑名单白名单过滤功能,apache rewrite规则实现白名单。 apache配置黑名单和白名单的两...2016-09-14
- 这篇文章主要介绍了Java类的访问权限关键字用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-29
- 这篇文章主要介绍了 Postgres 创建Role并赋予权限的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-16
- 这篇文章主要介绍了Postgresql 数据库权限功能的使用总结,具有很好的参考价值,对大家有所帮助。一起跟随小编过来看看吧...2021-02-05
- 知识归纳因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host。 如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先...2015-11-08
- 后台内容无法更新,如基本设置保存不了,数据库写不进去,很有可能是Everyone权限问题,即Everyone 无权操作文件夹,按照下面的步骤操作即可...2016-01-27
- 这篇文章主要介绍了基于SpringBoot实现一个简单的权限控制注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-01
- 这篇文章主要介绍了mysql免安装没有任何root权限的安装与配置教程,本文图文并茂给大家介绍的非常详细,需要的朋友参考下...2017-01-22
- 在php中要获取或目录权限我们可使用fileperms函数来获取,fileperms() 函数返回文件或目录的权限,。若成功,则返回文件的访问权限。若失败,则返回 false。 例子 1 ...2016-11-25
- 界面每个元素的权限也是需要控制的。比如一个查询用户的界面里面有查询用户按钮,添加用户按钮,删除用户按钮,不同的角色我们得分配不同的权限...2021-09-22
- 分三步实现:标出界面所要分配权限的元素、扫描界面获取所要分配权限的元素信息、存入数据库中,感兴趣的朋友可以了解下...2021-09-22
- 本文章来给各位朋友介绍关于BlueHost跨站/跨目录权限解决方案,希望本文章对各位能带来帮助。 切换到PHP 5.3 (Single php.ini),点击Save保存,这时候FTP连接到BlueH...2016-10-10
- 本篇文章介绍了,使用root权限运行自己所编译程序的解决方法。需要的朋友参考下...2020-04-25
- 本文告诉大家如何使用相同权限调用cmd并且传入命令,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧...2020-06-25
Springboot+Vue+shiro实现前后端分离、权限控制的示例代码
这篇文章主要介绍了Springboot+Vue+shiro实现前后端分离、权限控制的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-16- 环境配置情况: apache安装目录:d:www-sapache php目录:d:www-sphp5 mysql目录:d:www-smysql 网站根目录:d:wwwhtdocs 专门为运行Apache运行所使用的用户:apache-u(可不隶属于任...2016-01-28
- 在开发中,我们经常会使用IO操作,例如创建,删除文件等操作。在项目中这样的需求也较多,我们也会经常对这些操作进行编码,但是对文件的权限进行设置,这样的操作可能会手动操作,本文介绍一种采用代码动态对文件设置权限的操作。...2020-06-25