一切福田,不離方寸,從心而覓,感無不通。

详解Mysql安全配置

目录 1. 前言 2. Mysql账户权限安全 3. Mysql数据的网络安全配置 4. 密码策略安全 5. Mysql日志 6. Mysql数据库服务所在主机安全配置 7. 部署SQL注入检测、防御模块 8. mysqld安全相关启动选项 9. mysql备份策略 1. 前言 Mysql数据库安全配置、或者叫加固属于风险模型中的一环,它需要安全人员在理论和实践的学习中不断发现新的问题,并针对这些问题对数据的各个方面的配置进行强化。本文试图围绕着数据库风险识别、数据库安全加固这个问题,探讨可以采取的措施来最大程度的保证我们的数据库的安全控制处在一个较好的水平。 2. Mysql账户权限安全 mysql中存在4个控制权限的表,分别为 1. mysql.USER表 2. mysql.DB表 3. mysql.TABLES_PRIV表 4. mysql.COLUMNS_PRIV表 要注意的是,Mysql中有一个数据库"information_schema",似乎里面保存的也是一些权限信息,但是要明白的是,这个数据库"information_schema"是为系统管理员提供元数据的一个简便方式,它实际上是一个视图,可以理解为对Mysql中的一个信息的封装,对于Mysql主程序来说,身份认证和授权的信息的来源只有一个,就是"mysql"。 http://www.cnblogs.com/hzhida/archive/2012/08/08/2628826.html 0×1. mysql.USER表 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 select * from USER; desc USER; mysql> desc USER;+————————+———————————--+——+—--+———+——-+ | Field                  | Type                              | […]

龙生   31 Mar 2015
View Details

解决wordpress中文标签tag翻页404错误问题

前面有一篇文章已经介绍过中文标签打开404错误的解决方法《解决中文标签打不开404错误问题》,这个只能解决中文标签的问题,当同一个标签中文章较多的时候,就存在标签页面分页的问题了,发现如果仅按照上文的方法修改,标签页面分也无法正常打开,同样会有404错误的问题,下面提供几种方法解决标签tag页面中文分页404错误问题。

注意:别用windows自带的记事本修改(推荐UltraEdit,Dreamweaver,notepad++等)。


 

1、如果你已经修改过wp-includes目录中的classes.php,可以正常访问中文标签。

代码的140行左右,将

  1. $pathinfo = $_SERVER[‘PATH_INFO’];

替换为:

  1. $pathinfo = mb_convert_encoding($_SERVER[‘PATH_INFO’], “UTF-8″, “GBK”);

  1. $req_uri = $_SERVER[‘REQUEST_URI’];

替换为:

  1. $req_uri = mb_convert_encoding($_SERVER[‘REQUEST_URI’], “UTF-8″, “GBK”);

那么下面你只需要修改wp-includes目录中的link-template.php文件的(1425行左右)

  1. $result = $base . $request . $query_string;

替换为

  1. $result = $base . mb_convert_encoding($request, ‘UTF-8‘, ‘GBK’) . $query_string;

这种方式替换后的tag翻页里面含有中文,不符合url标准,不太利于搜索引擎收录,建议采用下面方法解决。


 

2、如果你什么都未修改,现在还无法访问中文标签tag。

可以通过安装插件iis-chinese-tag-permalink解决这个问题。

iis-chinese-tag-permalink下载地址:http://wordpress.org/extend/plugins/iis-chinese-tag-permalink/

这个插件函数很少只有几个替换函数而已,不会占用太多资源,如果你不想用插件,可以下载后把插件里面的几个函数拷贝到主题目录的functions.php中,本博就是采用这种方式。

 

from:http://www.52qingyin.cn/chinese-tag-page-problem.html

【探索】自动报警的验证码

前言

最近 12306 换了套新验证码,又一次引发吐槽。

虽然图片组合的方式仍有不少争议,但无论如何能尝试突破传统,都是值得称赞的。

毕竟传统的验证码已饱受诟病了。为了对抗少数恶意用户,却降低了绝大部分正常人的用户体验。

每当无聊时,就会遐想各种验证码的方案,今天分享一个比较有趣的。

自动报警的密码

曾有传言,在 ATM 机上密码倒着输会自动报警。且不论真实性,就这想法还是有点意思的。

  • 首先,也是最重要的,输入了这个反密码仍能取钱,这满足了劫匪的目的。但同时已悄悄的报警,想必也逃不远了。
  • 其次,这无需引入一个额外的报警密码。多一个就会提升复杂度,增加记错的可能。
  • 最后,即使平时输错,那么正好输成这个报警码的概率也是很低的。(12321 这种回文暂不考虑)

于是密码除了可以用于验证外,还可以在真与假之间建立一个规则,用于隐写额外的信息。

这个特征,是否也可用于验证码呢。

自动报警的验证码

我们得设计一个圈套,让正常用户几乎不会落入,而假人一不小心就会掉进这个陷阱里。

通常情况下,破解验证码的程序都是直接抓取图片中的像素点,然后进行分析。而用户看到的,则是屏幕上最终显示出来的内容。

在绝大多数情况下,这两者都是相同的。但我们也可以让它变得不同,人为的制造一点麻烦出来。

例如,一个内容为 d6xm 的验证码:

这是个再普通不过的验证码,破解几乎毫无压力。不过,这次玩的不再是算法上的对抗了。

我们在页面中某个隐蔽的地方,偷偷插入一个 CSS 规则:

将图片进行 180° 的旋转。这时,呈现在用户眼前的就是这样一个东西了:

内容正好变成了 wx9p!

到底哪个是正确答案呢,就不用说了吧。既然我们考察的是用户,那当然就是眼见为实的了!

但通过抓图识别的假人看来,仍是原始的像素点,并不知道页面中还有这么个小把戏,于是一不小心就中招了。

即使用户偶尔会有输错,但如果能把 wx9p 拼成 d6xm,那也太巧合了,想必还是开挂的可能性比较大吧。

类似输入报警密码仍能取钱,我们也尽量保持这个陷阱足够低调。即使用户提交了 d6xm 也算通过,但后台会悄悄的记录下这一切。

当某个用户达到一定可疑程度时,就可以对其采取相应的措施了。将拦截处理进行延时,以避免过早的进入对抗。

题库模板

当然,上面只是举了个简单的例子。像旋转这样的规则,有着太多的局限。并非所有字符旋转后都有对应的,也不能出现回文字符串。

事实上,还可以尝试更为通用的方法。

前面提到 ATM 取款密码时,若能单独设置一个报警密码,其实也是很好的,只是要多记一条。但在验证码这里,用户是完全透明的,再复杂也是浏览器自动搞定的。

我们尝试在图片里写入两套字符串。一个非常明显,另个则像水印一样暗淡。

正常情况下,后者不仔细观察很难发现。但通过页面中的滤镜,会使两者正好相反:

于是在最终用户眼里,看见的反而是水印的版本。

除了这些,其实有无数多的变化方案。例如事先对图片进行扭曲,渲染时再还原回来,等等。

当然不论怎样,其本质都是一样的。相比传统的单一图像输出,如今还多一个变幻参数,并且位于图片之外的页面里。两者必须相结合,才能渲染出最终的图像。

对于普通的傻瓜式破解程序,这道门槛即可将其原形毕露。为了获得图片最终被应用上的样式,外挂不得不使用浏览器内核对页面进行渲染,取代传统直接抓接口的方式。

于是进入前端脚本对抗阶段。

对抗

对抗是没有标准答案的。如果要有,那就是成本最低的,才能坚持的更久。

传统的验证码出现十多年,已经积累了大量的破解经验,现成的工具和算法随处可得,图像识别进入低成本规模化。在这样形势下,还停留在纯粹的图像上,也难以大幅改进了。

但新增了一个渲染时的变量,情况就变得好转。我们可以使用前端加密混淆技术、以及各种黑魔法,进行对抗。

也许某个外挂在识图领域非常强,但对于页面脚本的了解并不深入。于是,我们就可使用另一个自己熟悉的领域,和传统进行对抗了。

当然,最完美的验证码,就是没有验证码,让页面脚本来进行自我检验。可以参考:《对抗假人 —— 前后端结合的 WAF》。在过去前端技术尚不发达的年代,这套系统无需验证码也能抵挡绝大多数的恶意提交和 cc 攻击。 在如今,比的就是更巧妙的方案了。

无论怎样,总是可以有更低成本的综合方案,来解决实际问题,而非吊死在一棵树上。

惩罚

外挂是永远不会消失的,而且只会越来越先进。我们不能阻止武器的制造者,但能惩罚滥用的人。

任何一个方案都会被破解,是无法长期对抗的。但可以在它的有效期内,尽可能多的揪出开挂用户,并作出惩罚。尤其是实名制的账号,逮到一个就少一个。

这种方案也未免每次都开启,而是时不时的进行抽查,让用户在使用外挂的具有一定的畏惧性,才是最终目标。

from:http://www.cnblogs.com/index-html/p/4357677.html

10套超漂亮的Bootstrap UI KIT(已转Html格式)

我们平时分享过不少的精品UI KIT PSD素材,这些组件虽然很漂亮,但是要转换成HTML网页格式时却不是一件容易的事情,因为UI组件元素很多,如果要转HTML需要不少的时间,而且要精通前端技术。

今天设计达人网整理自pixelkit上的免费UI KIT素材,这些PSD已经转成DIV+CSS格式,可以直接快速的应用在网页上,更棒的是它使用Bootstrap框架编写,最新的HTML5+CSS3技术都有了,所以你绝对不怕过时!

这次分享的组件带有帮助文档,让你使用的时候更得心应手,如果免费版不满足你,可以购买高级版(Premium Version)而且价格十分便宜!好吧,赶快下载和分享给你的朋友们,免费的哦!(打包下载链接在文章底部)

Funky Tunes

这个Funky Tunes组件设计有梦幻般的美丽,适合用在音乐、视频类的APP或网站。

free-bootstrap-ui-kit-1

在线DEMO | 使用文档 | 高级版(付费)

Skinny Frames

这个Skinny Frames使用了扁平化风格设计,适合于网站平台,如果想跟紧潮流,玩玩扁平化,这个组件可以选择哦,而且配色很容易修改,通过在线网页配色工具来换个颜色主题或许会有另一番风景哦!

free-bootstrap-ui-kit-2

在线DEMO | 使用文档 | 高级版(付费)

City Break

这个City Break使用蓝色Web配色,适合用于旅游、酒店、机票等服务类型网站。

free-bootstrap-ui-kit-3

在线DEMO | 使用文档 | 高级版(付费)

Chubby Stacks

前面介绍平面的设计太多了,再回来看看带质感的UI也很不错的,这套绿色风格的Chubby Stacks组件包设计很漂亮,好在已经写好HTML,节省了我们N多时间哇!

free-bootstrap-ui-kit-4

在线DEMO | 使用文档 | 高级版(付费)

Sweet Candy

精美而又可爱的UI设计组件,用在个人博客、网站很不错呢。

free-bootstrap-ui-kit-5

在线DEMO | 使用文档 | 高级版(付费)

Arctic Sunset

free-bootstrap-ui-kit-6

在线DEMO | 使用文档 | 高级版(付费)

Dark Velvet

暗调的UI KIT,就像黑色一样,看上去很有感觉,如果用在网站上,不知道视觉效果会怎样呢?欢迎尝试。

free-bootstrap-ui-kit-7

在线DEMO | 使用文档 | 高级版(付费)

Vanilla Cream

质感和平面,到底哪个最好,其实没有最好,只有更好。(废话)

free-bootstrap-ui-kit-8

在线DEMO | 使用文档 | 高级版(付费)

Metro Vibes

这个UIKIT最早是在Dribbble上看到的,现在已经有HTML版本,实在太棒了!

ui设计

在线DEMO | 使用文档 | 高级版(付费)

Modern Touch

时尚的扁平化设计风格,这个设计除了桌面平台,也十分适合手持设备,另外配色也很赞!Nice!

free-bootstrap-ui-kit-10

在线DEMO | 使用文档 | 高级版(付费)

from:http://www.shejidaren.com/free-bootstrap-ui-kits.html

10 个轻松学会 CSS3 的优秀在线资源

本文包揽 CSS 的所有关键点,并且引入了最新的 CSS3 版本。这个先进的技术提供超级多的新标签和属性,使得 Web 设计构建创新更简单,帮助开发者创建具有新趋势,带有漂亮布局的 Web 页面。随着科技一天一天的进步,Web 设计现如今已是简单的任务,这些先进的科技可以帮助开发者更好的创建网站和模板。 今天,这里要分享 10 个最好的,可以轻松学会 CSS3 的资源,主要是学习 CSS3 最新的标签和元素。这些资源将会帮助大家一步一步学会 CSS3 的所有基础内容和新特性。如果你有好的资源,与大家一起分享吧~ 1) Introduction to CSS3 2) CSS3 info CSS3 info 是和读者一起分享 CSS3 的经验,希望能覆盖所有 CSS3 的特性。 3) CSS-access CSS-access 包括所有 CSS 和 CSS3 属性和样式元素。样式表可以被精准的控制,标签外的字符间距,文本对齐,页面对象的位置,音频和语音输出,字体特征等等。 4) CSS3 Attribute Selectors CSS attribute selectors 允许大家精确的指出元素属性值和元素依赖的样式。CSS3 引入了 3 个 selectors,可以匹配字符串到一个属性值。 5) Codecademy – HTML/CSS3 Codecademy 帮助大家学习使用 HTML 和 CSS 来创建页面,并且装饰页面。同时也可以学习 HTML5 和 CSS3。 6) w3 CSS 7) The CodePlayer -CSS3 code player 是开发者可以轻松学会 HTML,CSS3,JavaScript 和先进 Web 技术的地方。 8) w3schools – CSS3  这是另一个最流行的网站,适用于初学者,高级 web 设计师和开发者,非常有帮助的网站! 9) Codeschool – CSS3 学习最新版本的 HTML 和 CSS,查看最新的 HTML5 […]

龙生   29 Mar 2015
View Details

处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

今天安装了windows7 开发web项目需要安装IIS,当安装完以后,web程序已经映射到了本地IIS上,运行出现如下错误提示 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 原因: vs2010默认的是4.0框架,4.0的框架是独立的CLR,和2.0的不同,如果想运行4.0的网站,需要用aspnet_regiis注册4.0框架,然后用4.0的Class池,就可以运行4.0的web项目了. 如何用aspnet_regiis注册4.0框架 : 方法如下,启动cmd (win键+R 启动cmd)  ,找到 4.0所在的目录,本人机器目录是 ; 注意:要以管理员的身份运行DOS窗口。 复制上面的目录  C:\Windows\Microsoft.NET\Framework\v4.0.30319 启动CMD进入上面的目录,如下图 回车后 如下图 已经进入 C:\Windows\Microsoft.NET\Framework\v4.0.30319 此目录 然后运行  aspnet_regiis.exe -i  如下图 稍等一会,  aspnet_regiis 注册后如下图 ok,这时的IIS就可以运行 .net 4.0 部署的网站了. from:http://blog.163.com/wger_163_dh/blog/static/142646155201151394642791/

龙生   28 Mar 2015
View Details

超详细mysql left join,right join,inner join用法分析

下面是例子分析 表A记录如下: aID        aNum 1           a20050111 2           a20050112 3           a20050113 4           a20050114 5           a20050115 表B记录如下: bID        bName 1            2006032401 2           2006032402 3           2006032403 4           2006032404 8           2006032408 创建这两个表SQL语句如下: CREATE TABLE  a aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , aNum char( 20 ) ) CREATE TABLE b( bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , bName char( 20 ) ) INSERT INTO a VALUES ( 1, 'a20050111' ) , ( 2, 'a20050112' ) , ( 3, 'a20050113' ) , ( 4, 'a20050114' ) , ( 5, 'a20050115' ) ; INSERT INTO b VALUES ( 1, ' 2006032401' ) , ( 2, '2006032402' ) , ( 3, '2006032403' ) , ( 4, '2006032404' ) , ( 8, '2006032408' ) ; 实验如下: 1.left join(左联接) sql语句如下: SELECT * FROM a LEFT JOIN  b ON a.aID =b.bID 结果如下: aID        aNum                   bID           bName 1            a20050111         1               2006032401 2            a20050112         2              2006032402 3            a20050113         3              2006032403 4            a20050114         4              2006032404 5            a20050115         NULL       NULL (所影响的行数为 5 行) 结果说明: left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL. 2.right join(右联接) sql语句如下: SELECT  * FROM a RIGHT JOING b ON a.aID = b.bID 结果如下: aID        aNum                   bID           bName 1            a20050111         1               2006032401 2            a20050112         2              2006032402 3            a20050113         3              2006032403 4            a20050114         4              2006032404 NULL    NULL                   8              2006032408 (所影响的行数为 5 行) 结果说明: 仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. 3.inner join(相等联接或内联接) sql语句如下: SELECT * FROM  a INNER JOIN  b ON a.aID =b.bID 等同于以下SQL句: SELECT * FROM a,b WHERE a.aID = b.bID 结果如下: aID        aNum                   bID           bName 1            a20050111         1               2006032401 2            a20050112         2              2006032402 3            a20050113         3              2006032403 4            a20050114         4              2006032404 结果说明: 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录. LEFT JOIN操作用于在任何的 FROM 子句中, 组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即 使在第二个(右边)表中并没有相符值的记录。 语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2 说明:table1, table2参数用于指定要将记录组合的表的名称。 field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的 名称。 compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。   […]

龙生   27 Mar 2015
View Details

php环境无法上传文件的解决方法

一、 检查网站目录的权限。 上传目录是否有写入权限。 二、 php.ini配置文件 php.ini中影响上传的有以下几处: file_uploads 是否开启 on 必须开启 是否允许HTTP文件上传 post_max_size = 8M PHP接受的POST数据最大长度。此设定也影响到文件上传。 要上传大文件,该值必须大于"upload_max_filesize" 如果配置脚本中激活了内存限制,"memory_limit"也会影响文件上传。 一般说来,"memory_limit"应该比"post_max_size"要大。 upload_max_filesize = 2M 允许上传的文件的最大尺寸 upload_tmp_dir = C:\windows\temp 文件上传时存放文件的临时目录。必须是PHP进程用户可写的目录。如果未指定则PHP使用系统默认值 default_socket_timeout = 60 socket超时,单位是秒 max_execution_time = 30 每个脚本最大允许执行时间, 按秒计。默认为30秒。 这个参数有助于阻止劣质脚本无休止的占用服务器资源。 注: "max_execution_time"仅影响脚本本身的运行时间。 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等都不包括在内。 在安全模式下,你不能用ini_set()在运行时改变这个设置 max_input_time = 60 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计 memory_limit = 128M 设定一个脚本所能够申请到的最大内存字节数。 这有助于防止劣质脚本消耗完服务器上的所有内存。 要使用此指令必须在编译的时候激活。 因此 configure 一行中应该包括:--enable-memory-limit 如果不需要任何内存上的限制,必须将其设为 -1 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用 三、upload_tmp_dir目录权限 如果php配置没问题,那问题有可能出在upload_tmp_dir设定的目录权限问题。加入IIS_WPG除完全控制外的权限,users的读写权限,NETWORK SERVER除完全控制外的权限。 四、如果起用了ZEND,看Temp文件夹中是否有ZendOptimizer.MemoryBase@SYSTEM和ZendOptimizer.MemoryBase@NETWORKSERVICE,如果没有,就建立它。 五、如果以上都不行,那问题很有可能出在这里了,检查windows目录是否禁用guests来宾组,要给windows目录users组 读取和执行权限。 from:http://www.jb51.net/article/49557.htm

龙生   27 Mar 2015
View Details

VS2012创建MVC3项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”

  VS2012已经全面切换到使用NuGet这个第三方开源工具来管理项目包和引用模块了,使用VS2012开发,都要装NuGet插件(官网:http://nuget.org),进官网点安装就进入了微软的下载页面,选择vs2012版本的NuGet.Tools.vsix文件,双击安装就可以了。 from:http://www.cxyclub.cn/n/20504/

龙生   27 Mar 2015
View Details

C# Winform对文件夹的权限判断及处理

WindowsIdentity类可以获取当前执行者的身份信息         /// <summary> /// 递归搜索文件方法 /// </summary> /// <param name="path">搜索的目录</param> /// <param name="name">搜索的文件名</param> public void GetDir(string path,string name) { DirectoryInfo di = new DirectoryInfo(path); DirectorySecurity s = new DirectorySecurity(path, AccessControlSections.Access); //判断目录是否 可以访问 if (!s.AreAccessRulesProtected) { foreach (DirectoryInfo d in di.GetDirectories()) { foreach (FileInfo fi in di.GetFiles()) { if (fi.Name.Contains(name)) { txtInfo.AppendText("文件名:"+fi.Name + " 路径:" + fi.FullName + " \n"); } } GetDir(d.FullName, name); } } } }   对执行的程序设定执行身份权限 如果程序不是以管理员身份运行,操作本地文件会提示:System.UnauthorizedAccessException异常   Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 […]

龙生   20 Mar 2015
View Details