客户的VPS又出问题了,访问慢悠悠

0 个评论
然后APACHE的错误日志老是提示MYSQL没有响应什么的 用phpmyadmin登陆不进去 感觉MYSQL不能访问,登录SSH,重启MYSQL发现不能重启 找到日志文件/var/log/mysqld.log打开看了一下 [ERROR] Can’t start server: can’t create PID file: No space left on device 又TM空间满了~又得删除日志了 一看/var/log/下最大的文件竟然有50M 是一个叫btmp的 搜索了一下~这个日志貌似是记录尝试登陆ssh的错误日志 我靠~有人想暴力破解SSH密码啊~ 还好我设置了很多符号~ 然后我把所有的大文件日志一删除 然后重启MYSQL~ 再访问就正常了~
2016-04-14 / centos / 1,861 views浏览
阅读全文

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

0 个评论
Redhat64位服务器重启后出现该问题,研究了一下午,发现解决办法: 问题说明80端口被占用,用netstat -nlp |grep :80命令看看有什么进程占用了80端口,发现是httpd进程。killall -9 httpd杀掉所有的httpd进程后,用service httpd start命令重启apache服务器,发现现在能够正常重启,不会出现上述问题   检查了一系列东西,最后发现是防火墙的问题,service iptables stop关闭防火墙后,远程测试能够正常访问服务器   PS:一天后发现并没有从根本上解决问题~APACHe还是会自动关掉,启动的时候还是上面的提示 网上找了一个解决办法 3.  Third solution is to change binging address in your httpd.conf  like this: Listen 127.0.0.1:80 ( that means:  instead of  Listen 0.0.0.0:80) 然后我修改了/etc/httpd/conf/httpd.conf 把里面的Listen 80修改为 Listen 127.0.0.1:80   然后重启apache,看看明天还出不出这个问题~ PS:貌似还是不太对~网站直接无法访问了,然后我看看配置文件里的例子~貌似要写服务器IP的 于是我直接改成了VPS的IP(这个IP每个服务器都不一样,根据自己的服务器IP修改),类似 Listen 123.123.123.123:80 再测试看看~   PS:apache还是不停地自动关闭,实在没办法~去查了一下错误日志 在/var/log/httpd/里面error_log 看了一下,原来是DEDE程序用了老函数,php5.3以上已经不支持了 [Wed Apr 13 00:16:15 2016] [error] [client 66.249.77.20] PHP Deprecated:  Function ereg() is deprecated in /var/www/html/xxx.com/include/arc.listview.class.php on line 681 一堆类似的错误,好吧修改吧 这是因为php5.3中不再支持eregi()函数,而使用preg_match()函数替代。 解决的方法是:将eregi()函数替换成preg_match() 函数。 if(eregi(‘^test’,$file)) 可以替换为 if(preg_match(‘/^test/i’,$file))   ————- PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?). 所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, 詳可見: PHP: Differences from POSIX regex * POSIX → PCRE * ereg_replace() → preg_replace() * ereg() → preg_match() * eregi_replace() → preg_replace() * eregi() → preg_match() * split() → preg_split() * spliti() → preg_split() * sql_regcase() → No equivalent * 需要 regex 的 split, 可用 preg_split() 代替 * 不需要 regex, 只要要快速分割固定的字串, 可用 explode() 代替. (速度會比需要 regex 的快很多)
2016-04-13 / centos / 1,732 views浏览
阅读全文

dede常见漏洞以及解决方法

0 个评论
转自http://www.2cto.com/Article/201309/241568.html dede的漏洞公认的多,接手这个网站也接触了不少,现在就把几种接触到的或者了解到的漏洞记录下来,让大家可以提高警惕,防止网站被攻击。 1.dede dialog目录下的配置文件漏洞    如果有能力的同学最好好好研究下这个目录下的文件,漏洞太多了,先只说我遇到的一处 在include/dialog下的config.php第35行   if($cuserLogin->getUserID() <=0 ) { if(empty($adminDirHand)) { ShowMsg("<b>提示:需输入后台管理目录才能登录</b><br /><form>请输入后台管理目录名:<input type='hidden' name='gotopage' value='".urlencode($dedeNowurl)."' /><input type='text' name='adminDirHand' value='dede' style='width:120px;' /><input style='width:80px;' type='submit' name='sbt' value='转入登录' /></form>", "javascript:;"); exit(); } $adminDirHand = HtmlReplace($adminDirHand, 1); $gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl); echo "<script language='javascript'>location='$gurl';</script>"; exit(); } 修改方案:$gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);上面添加如下语句: $adminDirHand = HtmlReplace($adminDirHand, 1); 2.dede group.php页面sql注入漏洞    具体在group/global.inc.php中 $db->SetQuery("SELECT G.groupname,G.groupid,G.des,G.groupimg FROM #@__group_user AS U LEFT JOIN #@__groups AS G ON U.gid=G.groupid WHERE U.uid IN({$_GROUPS[‘_vars’][‘mids’]}) AND U.isjoin=1 AND U.gid<>$id LIMIT 0,6"); $id直接来自用户的输入。应该给$id加过滤 3.dede 5.7版本sql注入漏洞    漏洞位置:/member/ajax_membergroup.php    漏洞原因:没有对membergroup变量进行过滤 4.wap跨站攻击    漏洞文件:wapphp第39行    解决方式:echo htmlspecialchars($pageBody); 5.dede搜索模块sql注入    漏洞文件 : plus/search.php文件存在变量覆盖漏洞,导致$typeid能被二次覆盖,产生sql注入漏洞。   解决方式:官网下载补丁吧. 6.dede 5.6版本任意sql注入漏洞    原因:形成原因:由于dedecmsv5.6的全局机制可以任意给其赋值,而且高级搜索功能/plus/advancedsearch.php中的$sql变量未初始化,导致高级搜索功能可以绕过模板定义直接执行任意SQL语句。   解决方法:对高级搜索功能/plus/advancedsearch.php中的$sql变量初始化 7.dede全局变量漏洞:   漏洞文件:include/common.inc.php   解决方法: 在 /include/common.inc.php  中 找到注册变量的代码   foreach(Array('_GET','_POST','_COOKIE') as $_request) { foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v); } 修改为 foreach(Array('_GET','_POST','_COOKIE') as $_request) { foreach($$_request as $_k => $_v) { if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){ exit('Request var not allow!'); } ${$_k} = _RunMagicQuotes($_v); } } 8.dede feedback.php页面漏洞    原因:DedeCMS的plus\feedback.php中对变量 $typeid未做过滤,导致SQL注入漏洞。    解决方式:官方有补丁 9.dede变量覆盖漏洞 安装完了删除了install就解决了 10.dede圈子搜索漏洞 漏洞页面:/group/search.php 解决方式:第16行: 1$keyword = htmlspecialchars(addslashes($keyword)); 11.dede官方源码漏洞 源码文件:include/shopcar.class.php文件第8行: 解决方式:删除@eval(file_get_contents(‘php://input’)); 12.dede新版本变量覆盖漏洞 文件include/common.inc.php 解决方式: CheckRequest($_REQUEST); 在下面添加 CheckRequest($_COOKIE); 13 .dede文件包含漏洞   漏洞文件:Include/payment/alipay.php      Include/payment/yeepay.php     解决方式:官方有补丁 14.dede样式分享XSS漏洞     漏洞文件plus/bshare.php     解决方式: plus目录下的bshare.php文件117行 $uuid = isset($uuid)? $uuid : ”;改成 $uuid = isset($uuid)? htmlspecialchars($uuid) : ”;
2016-04-12 / dedecms / 1,902 views浏览
阅读全文

ecms7.2修改头尾模版后需要的操作

0 个评论
以前一直不知道,模版头尾更新了以后还得一个一个模版去点一次 提交 更新数据 今天看了下代码,原来是\e\data\tmp下生成了模版缓存,以dt_开头的就是 dt_tempindexpage.php就是首页的缓存 难怪我说怎么更新了头尾,怎么首页等模版不变的~ 然后在后台数据更新那里有个 清除临时文件和数据  可以把这些缓存删除~ 以后更新了头尾直接点这里就可以了~不用每个模版去点一次 提交
2016-03-31 / ecms / 1,818 views浏览
阅读全文

MKV加字幕

0 个评论
昨天给小孩下了个动画片,发现字幕是单独的 在电脑看的话,播放软件一般可以外挂字幕 但是用电视看的话就没办法外挂了 最好的办法,把字幕给放进mkv文件里去 我下了一个mkvtoolnix绿色版 发现是英文的,即使在选项里选了中文还是没用,大部分文字还是英文   然后我们点红圈那里导入需要加字幕的视频   再按第二次上图红圈那里导入字幕   导入成功,看到了吗?   还需要设置一下语言   以及字幕的格式,这个可以用editplus另存为,就可以看出是什么格式了,或者我们直接把字幕文件转为UTF-8格式,然后这里也选utf-8格式,再按下面红圈的按钮   等一下子,右下绿色进度条变为100%就可以了
2016-03-30 / 生活 / 1,579 views浏览
阅读全文

帝国cms判断各种页面

0 个评论
判断用: 这是内容页 这是首页 这是栏目页 其它页面
2016-03-30 / ecms / 1,601 views浏览
阅读全文

发现这个思路蛮好的~帝国cms自动采集

0 个评论
计划任务功能 :定时生成,定时采集,其实很简单 利用官方的计划任务 我们可以轻松的制作定时采集,定时生成栏目以及内容页面 其实思路很简单 大家把采集地址完整的复制下来,写到程序里面 比如我的网站下 国内新闻 的采集地址是http://localhost/e/admin/DoCj.php?enews=CjUrl&classid[]=1 那么新建一个dscj_task.php文件 内容如下 <?php /*         计划任务名称:自动采集 */ if(!defined(‘InEmpireCMS’)) {         exit(); }         echo ‘<IFRAME frameBorder="0" scrolling="no" src="http://localhost/e/admin/DoCj.php?enews=CjUrl&classid[]=1" style="HEIGHT:0;VISIBILITY:inherit;WIDTH:0;Z-INDEX:1"></IFRAME>’; ?> 然后保存文件,并将dscj_task.php文件复制到帝国系统的e/tasks目录里。 说明:依情况修改成你自己的采集地址。 然后增加计划任务记录就可以运行了 我已经试验成功 每天每小时的5分钟定时采集 定时生成(思路一样) 还不明白的 看看官方的介绍:http://bbs.phome.net/ShowThread/?threadid=45614&forumid=35   有空可以试验一下
2016-03-29 / ecms / 1,990 views浏览
阅读全文

帝国cms7.2后台密码忘记后修改的办法

0 个评论
在帝国安装包里的 常见问题.html 里面有说明的 UPDATE  `phome_enewsuser` SET  `password` =  ‘a024187abaf1c7a6392128a90493e99b’, `salt` =  ’empire’, `salt2` =  ’empirecms’ WHERE  `phome_enewsuser`.`userid` =1; 忘记后台认证码 是在数据库配置文件的/e/config/config.php的$ecms_config[‘esafe’][‘loginauth’]变量里 后台5次输入错密码就必须等60秒也是在这个文件/e/config/config.php,设置 ‘loginnum’=>5, ‘logintime’=>60, 可以改成 ‘loginnum’=>500, ‘logintime’=>0, 呵呵呵~这样可以错500次,即使错了500次,只要等0分钟又可以下一个500次
2016-03-29 / ecms / 1,662 views浏览
阅读全文

dede广告内容有长度限制

0 个评论
有个客户放了一大堆广告代码,叫了N遍让他分成几个广告 但是,对于某些人来说这比登天还难 今天再仔细查看了后台代码 DEDE程序没做任何限制 然后我想到了数据库字段的字数限制 然后进数据库看了一下 dede_myad表里的 normbody 字段是text类型的 查了一下资料 mysql的text类型有64K长度限制的,MEDIUMTEXT中型是2G,LONGTEXT大型是4G 然后通过phpmyadmin改字段类型吧,下面是自动生成的语句,估计可以直接用的 ALTER TABLE `dede_myad` CHANGE `normbody` `normbody` MEDIUMTEXT CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL   可以顺便连 过期广告 那个字段也改了 ALTER TABLE `dede_myad` CHANGE `expbody` `expbody` MEDIUMTEXT CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL
2016-03-27 / dedecms / 1,839 views浏览
阅读全文

editplus替换CSS中图片路径的正则

0 个评论
我喜欢把图片直接放在CSS文件所在目录 所以就弄了一个正则   url\([\"]?([^\"]*)\/([^\/]*).(jpg|gif|png)[\"]?\) 替换为 url("\2.\3")   这样类似这样的路径 url(../images/rank.png) 就变成了 url("rank.png")   统一了
2016-03-27 / 网站制作技术 / 1,489 views浏览
阅读全文