喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

招聘PHP开发人员(北京)

上一主题 下一主题
     
标题: [讨论] 关于后台安全的一点  
 
好蛋
高级会员
Rank: 4
中级会员


UID 28253
精华 0
积分 503
帖子 454
金钱 503 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2004-5-2
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
关于后台安全的一点

我以前写过几个小的后台程序,无论是asp还是php都喜欢添加一个log表,里面记录各种操作信息,不知道大家有没有这种习惯。

一般是记录用户名,事件类型,页面,时间,ip等,这样出现问题方便查找以前的信息。
2006-12-18 04:42 PM#1
查看资料  发短消息  顶部
 
sanders_yao
版主
Rank: 7Rank: 7Rank: 7
or2 =333


UID 30286
精华 0
积分 2573
帖子 4779
金钱 2570 喜悦币
威望 0
人脉 3
阅读权限 100
注册 2004-7-23
来自 北京 菜户营
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
我还没形成习惯 不知道该记录什么
上次写的一个数据库类型里采用了这样的功能:
function logHandle($str, $mode){
                if(!in_array($mode, array("query", "error"))){
                        return false;
                }
                set_time_limit(1000);
                ignore_user_abort(true);
                if(is_dir($this->itsLogDir)){
                        $fileStr = $str . "\t" . time() . "\n";
                        $fp = @fopen($this->itsLogDir . $mode . "log.txt", "a");
                        if(false !== $fp){
                                if(filesize($this->itsLogDir . $mode . "log.txt") + strlen(fileStr) > $this->itsMaxLogSize){
                                        copy($this->itsLogDir . $mode . "log.txt", $this->itsLogDir . $mode . "log_" . time() . ".txt");
                                        fclose($fp);
                                        $fp = @fopen($this->itsLogDir . $mode . "log.txt", "w");
                                        if(false === $fp){
                                                return false;
                                        }
                                        fwrite($fp, $str, strlen($str));
                                        fclose($fp);
                                }
                        }
                }
                if("" == $this->itsLogTable){
                        return true;
                }
                $this->getTables();
                if(NULL != $this->itsLink && isset($this->itsTables[$this->itsLogTable])){
                        $query_string = sprintf("SELECT COUNT(*) AS `total` FROM `%s`;", $this->itsLogTable);
                        $result = mysql_query($query_string, $this->itsLink) or die(mysql_error());
                        if(false === $result){
                                return false;
                        }
                        $arrayTmp = mysql_fetch_array($result);
                        if($arrayTmp["total"] >= $this->itsMaxLogRows){
                                $tmpTable = $this->itsLogTable . date("ymd");
                                $query_string = sprintf("CREATE TABLE `%s` (
                                `id` int(10) unsigned NOT NULL auto_increment,
                                `detail` text,
                                `mode` varchar(5) NOT NULL default '',
                                `ctime` int(10) unsigned NOT NULL default '0',
                                PRIMARY KEY  (`id`)
                                ) TYPE=MyISAM", $tmpTable);
                                mysql_query($query_string, $this->itsLink) or die(mysql_error());
                                $query_string = sprintf("INSERT INTO `%s`(`detail`, `mode`, `ctime`) SELECT `detail`, `mode`, `ctime` FROM `%s`;", $tmpTable, $this->itsLogTable);
                                mysql_query($query_string, $this->itsLink) or die(mysql_error());
                                $query_string = sprintf("TRUNCATE TABLE `%s`", $this->itsLogTable);
                                mysql_query($query_string, $this->itsLink) or die(mysql_error());
                        }
                        $query_string = sprintf("INSERT INTO `%s`(`detail`, `mode`, `ctime`) VALUES('%s', '%s', UNIX_TIMESTAMP())", $this->itsLogTable, $str, $mode);
                        mysql_query($query_string, $this->itsLink) or die(mysql_error());
                }
                return true;
        }
还没测试哈 不知道会出现什么情况 可能性能会降低很多
2006-12-18 06:06 PM#2
查看资料  Blog  发短消息  顶部
 
fly512 (我本如是)
版主
Rank: 7Rank: 7Rank: 7
人生的另一半


UID 42566
精华 0
积分 2489
帖子 2373
金钱 1759 喜悦币
威望 0
人脉 730
阅读权限 100
注册 2004-10-31
来自 亚特兰迪斯
状态 离线
[推荐阅读] 一丝不挂
没有这个习惯,我一斑只用文件记录异常情况,



不要使用数据库
PHP中国
2006-12-18 07:24 PM#3
查看资料  访问主页  Blog  发短消息  顶部
 
akstrom (akstrom)
金牌会员
Rank: 6Rank: 6
村口大榕树上的知了


UID 24856
精华 0
积分 1077
帖子 1079
金钱 945 喜悦币
威望 0
人脉 132
阅读权限 70
注册 2003-11-27
来自 广州
状态 离线
[推荐阅读] 奇思妙想吓你一跳 公元3000年的幸福生活(转载)
已经有这个习惯了,用文件记录数据库异常情况,用数据库记录后台操作记录



电子商务系统

后台/admin
用户名密码一样admin

',“╭⌒╮⌒╮╮
  ╱◥██◣,.
︱田︱田田| '',,',.
╬╬╬╬╬╬╬╬╬╬╬╬
2006-12-19 11:00 AM#4
查看资料  访问主页  Blog  发短消息  顶部
 
cator (标哥)
版主
Rank: 7Rank: 7Rank: 7
PHP流浪者


UID 81264
精华 0
积分 376
帖子 522
金钱 373 喜悦币
威望 0
人脉 3
阅读权限 100
注册 2006-10-10
来自 福州
状态 离线
[推荐阅读] 本人免费为村子里PHP人员提供空间!如果需要可以联系我:)
这跟后台安全有什么关系呀?



msn: cator # live . com
2006-12-19 09:17 PM#5
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.024942 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP