猫窝私语 — Makumo's Blog

玛酷猫的温馨小窝,记录生活点点滴滴。

@玛酷猫16 年前

12/6
01:46
他山之石 建站日志

HTTP_X_FORWARDED_FOR、IP、安全性

(由于本人也是PHP的初学者,对于一些安全问题了解的也不是很多。可能是空间商“将程序隐藏在Apache的Proxy模块后面”,除了使用HTTP_X_FORWARDED_FOR,其他方法获取的IP地址都是127.0.0.1。@gowers在之前所写的《解决wordpress留言评论者IP都是127.0.0.1》提到了关于HTTP_X_FORWARDED_FOR安全性的问题,我在网上查找了些资料,安全性的漏洞可以使用格式检查和SQL语句不安全字符过滤方法来封堵,不过对于伪造IP就没什么办法了。引用下kingthy的一篇文章《使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果》)

在WEB开发中.我们可能都习惯使用下面的代码来获取客户端的IP地址:

//优先取得代理IP
string IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(IP)) {
 //没有代理IP则直接取连接客户端IP
 IP = Request.ServerVariables["REMOTE_ADDR"];
}

上面代码看来起是正常的.可惜这里却隐藏了一个隐患!!因为”HTTP_X_FORWARDED_FOR”这个值是通过获取HTTP头的”X_FORWARDED_FOR”属性取得.所以这里就提供给恶意破坏者一个办法:可以伪造IP地址!!

下面是测试代码:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/ip.aspx");
request.Headers.Add("X_FORWARDED_FOR", "0.0.0.0");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream());
string IP = stream.ReadToEnd();
stream.Close();
response.Close();
request = null;

“ip.aspx”文件代码:

Response.Clear();
//优先取得代理IP
string IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(IP))
{
  //没有代理IP则直接取客户端IP
  IP = Request.ServerVariables["REMOTE_ADDR"];
}
Response.Write(IP);
Response.End();

这样.当测试代码中去访问ip.aspx文件时.”string IP = stream.ReadToEnd();”这段代码取到的IP数据就是”0.0.0.0″!!!!(呵.在真实情况下.这样的IP地址肯定不是我们想要的结果.而在有些投票系统中限制一个IP只能投1次票时,如果也是用类似的代码取得对方IP然后再判断的话.呵呵.限制就失效咯)…

或者如果你用上面代码获取IP地址后后面又不再进行数据判断的话也许还能更进一步进行数据破坏!!
比如你用类似上面的代码中获取IP地址就直接有这样的SQL语句:
string sql = “INSERT INTO (IP) VALUE (‘” + IP + “‘)”;
那么也许破坏者还可以进行SQL注入进行数据破坏!!

这样看来利用”HTTP_X_FORWARDED_FOR”这个属性获取客户端IP的方法就不再可取了.-_-# 但如果不用这种方法.那么那些真正使用了代理服务器的人.我们又不能再获取到他们的真实IP地址(因为某些代理服务器会在”X_FORWARDED_FOR”这个HTTP头里加上访问用户真正的IP地址).呵.现实就是这样,某种东西都有有得必有失…

HTTP_X_FORWARDED_FOR、IP、安全性

@玛酷猫16 年前

11/26
22:25
建站日志

小窝同步翻新,关于表情

今天发现wp已经更新到2.6.5版本,于是down下了最新的几块“地板砖”,把小窝的几块有蛀虫(BUG)的地板砖卸了下了,用新的替换上去,旧的直接甩出窗外 :mrgreen: 。好像没砸到人 :mrgreen:

wordpres其实自带着有表情替换,他并没有可视化插入的界面,只是自动替换文章中出现的一些特殊的字符串,比如:-)、:-D之类,不过使用起来太不方便,稍微打错一点就无法显示。发动懒人精神,使用了一款叫[name]Highslide4WP,http://www.neoease.com/highslide4wp/[/name]的插件,这个插件也是这个主题的作者[name]mg12,http://www.neoease.com/[/name]所制作,详细使用可以参考作者发布页面。

网上寻觅新表情图标中 😛 …………

PS:写完才发现表情居然一个都没替换出来,纳闷中  :faint: ……

PS2:终于知道为什么出不来了,表情前面要加一个空格 😉

PS3:网上找了半天,寻觅到一套狗狗的,先用着了。为虾米没有猫的呢? 😎

小窝同步翻新,关于表情

@玛酷猫16 年前

11/22
01:19
建站日志

更新inove主题到1.05

发现[name]mg12,http://www.neoease.com/[/name]的[name]inove,http://www.neoease.com/inove/[/name]很受大家喜欢呀,在网上漫游经常能遇到同样主题的站。感谢mg12设计的主题,也希望该主题能一直保持更新。

今天发现这个主题已经更新到1.05,比较丢人的是我在mg12的主页上一直没找到详细的更新日志,下载压缩包里面只有版本号和对应的说明,没有具体怎么修改。我在之前的版本中的部分代码上做了点调整,又不能完全覆盖更新。幸好在[name]笑傲人生,http://www.xiaorsz.cn[/name]的[name]一篇文章,http://www.xiaorsz.cn/2008/11/wordpress-theme-inove-105/[/name]上面看到了详细更新的代码,照葫芦画瓢,也把我的小窝更新到1.05。O(∩_∩)O

添加了[name]wp23_related_posts,http://wordpress.org/extend/plugins/wordpress-23-related-posts-plugin/[/name]插件,在每篇文章后面显示相关文章,具体设置可以查看[name]作者说明页面,http://fairyfish.net/2007/09/12/wordpress-23-related-posts-plugin/[/name]。

更新inove主题到1.05

@玛酷猫16 年前

11/21
22:40
前端 建站日志

FusionCharts参数简单说明

之前介绍了这款很不错的Flash统计图软件[name]FusionChartsFree,https://www.makumo.com/fusioncharts.cat[/name],它是[name]FusionCharts,http://www.fusioncharts.com[/name]的一个免费版本,根据官网介绍,最新版本V3支持46种统计图样式,多统计图联动等等一些很有意思的功能,官网的一些统计图demo

在上篇文章中曾经提到了字体小等等一些问题,这几天好好看了下附带的说明文档,其实这些都可以设置的。在说明文档Chart XML Reference栏目下就有详细的参数说明,针对不同的统计图表都用不同的参数说明。公共部分比如baseFont:设置字体样式;baseFontSize:设置字体大小,将<graph>中间加上baseFontSize=‘12’,字体就变成12号字了;还有numberPrefix、numberSuffix:前缀、后缀,根据说明中的提示“To use special characters for numberPrefix or numberSuffix, you’ll need to URL Encode them.”,比如后缀想显示“元”,在graph标签种应该设置成numberSuffix=‘%D4%AA’,一些文本编辑器支持代码转换可以直接转,实在找不到可以借用搜索引擎,例如百度,在搜索框输入“元”,点搜索,在地址栏里面“http://www.baidu.com.cn/s?wd=%D4%AA”中的wd=后面的字符串就是“元”字转过的编码。参数有许多,根据不同的图表,参数也有不同之处,可以通过设置不同的参数显示出很有个性的统计图出来。这里就不再一一说明了,可以参照说明文档中的说明,虽然都是英文版的,但是很简单明了,一般写过程序的基本都能看得懂。

最后顺便提下LICENSE,免费版只用于individual/research/commercial(个人/研究/交流),要尊重别人的劳动成果和知识产权。LICENSE如下:

  • FusionCharts Free can be used for free if you are a individual/research/commercial user.
  • FusionCharts Free can be distributed for free with your free or commercial softwares, irrespective of whether they’re open source or closed source.
  • You must not sell FusionCharts Free as a component in itself. However, your commercial product can embed FusionCharts Free.
  • You must not represent in any way that you’re the author of FusionCharts Free.

FusionCharts参数简单说明

@玛酷猫16 年前

11/18
23:42
WordPress 建站日志

SEO、点击数、其他

这今天看了几篇SEO相关的文章,正好手边有个良好的测试对象,就拿自己的小窝试一试。懒猫当然是借助插件帮忙了,先去下载了[name]All in One SEO Pack,http://wordpress.org/extend/plugins/all-in-one-seo-pack/[/name],其实可以自己修改相关文件来达到插件的作用,不过作为标准懒猫,还是拿来主义O(∩_∩)O。不过有点比较郁闷的是插件包里面带着有zh_CN.mo的语言包,为什么显示还是英文=。=不过好在比较简单,英文也就凑合这用了。设置完成后将WP默认的“站名-文章名”的title转变成对搜索引擎相对友好的“文章名-站名”,同时也把页面中的keyword和description填补了起来。在编写文章的时候也可以填写相关SEO的内容,还是很方便的。顺便补完了分类的描述,使分类页面中间的description能正常显示,不过显示出来的文字前后多了个<p></p>。。改天找下对应的函数,把这个抹掉。

WP居然不自带文章点击数的统计,难道国外的博客都不将点击数作为一种衡量标准吗?虽然说点击数水分比较大,但是也不至于舍弃这个功能吧,也仅仅是加个字段,加几句代码罢了。依旧发挥懒猫精神,下了[name]wp-postviews,http://lesterchan.net/wordpress/readme/wp-postviews.html[/name],安装后,在样式侧边管理里面多了一个新的模块,可以显示热门文章了,不过我遇到了两个很奇怪的问题,一个就是将计数器控制调整成everyone,怎么刷新都不见点击数加1;另外就是之前All in One SEO Pack所设置的meta标签内容全部乱码了-_-!暂时先停止这个插件,之后慢慢研究那块冲突了。

懒猫还是比较爱吃的,准备抽个时间把以前网上搜索的食谱整理下,发出来,一是方便自己查找,二是有福共享嘛。

晚上天气还是好冷。。。打一会字就手脚冰凉了,不多写了,钻被窝了。O(∩_∩)O

SEO、点击数、其他

@玛酷猫16 年前

11/14
00:30
WordPress 建站日志

解决wordpress留言评论者IP都是127.0.0.1

刚刚开始用2.1版本的时候就发现这个问题,所有评论这的IP都是127.0.0.1,当时也没在意,心想可能是那块没有设置好,反正评论的人也不多。前几天更新成2.6.3后,发现这个问题依旧存在,127.0.0.1似乎在评论审核的黑名单中,弄的所有的评论都变成垃圾评论,都要一个个审核,很是烦人。

上网查了下资料,遇到这个问题的人并不多,还在有人提起,也有热心人回复了大概原因以及大概解决方案:原因是空间商启用了某种缓存机制导致取IP产生错误,使得结果都是本机IP,也就是127.0.0.1。解决方案也很简单,更换获取IP语句就好。

查了下PHP获取IP的语句,主要是以下几种

$_SERVER["HTTP_X_FORWARDED_FOR"; 
$_SERVER["HTTP_CLIENT_IP"]; 
$_SERVER["REMOTE_ADDR"]; 
getenv("HTTP_X_FORWARDED_FOR"); 
getenv("HTTP_CLIENT_IP"); 
getenv("REMOTE_ADDR"); 

剩下的就很简单了,写一个测试页面,一个一个试,看那个能显示正确的IP地址,在修改/wp-includes/comment.php ,我的文件是在第718行

	
$commentdata['comment_author_IP'] = preg_replace( '/[^0-9a-fA-F:., ]/', '',$_SERVER['REMOTE_ADDR'] );

将$_SERVER[‘REMOTE_ADDR’]改成上面测试正确IP的语句,问题解决。

本人对PHP还是初学者阶段,如有叙述不当之处,还希望多多斧正。

解决wordpress留言评论者IP都是127.0.0.1

@玛酷猫16 年前

11/13
01:01
WordPress 建站日志

WP的代码高亮提示插件

今天无意翻阅以前发的文章,发现原来使用的高亮插件coolcode版面乱掉了,试着调了一会CSS,效果依旧不是很理想,无奈只有放弃。(后来才发现是定了首行缩进的缘故,不过考虑到coolcode修改经常标签丢失,也还是放弃了)

在网上搜索了下,先用的是[name]Syntax Highlighter,http://code.google.com/p/syntaxhighlighter/[/name],页面显示还是很漂亮的,不过可能是纯JS的缘故,我这显示总是用一种滞后。页面打开后,显示的是普通的代码,代码比较长,页面版面变形厉害,等页面输出完毕后,代码部分才变成需要的高亮样式,感觉比较难受,而且个人喜欢使用禁用JS的火狐上网,看自己页面效果全无。只有先放一边了。

下载[name]iG Syntax Hiliter,http://blog.igeek.info/still-fresh/2006/02/25/code-for-fun/[/name],启用的时候不同的提示严重错误,无法启动,错误代码是:路径/geshi.php不存在,一头雾水,在服务器上查了下,文件的确在那,头晕中。

[name]Highlight Source Pro,http://blog.kno.at/tools/highlight-source-pro[/name]和[name]WP-Syntax,http://wordpress.org/extend/plugins/wp-syntax/[/name]有点类似,使用pre标签,每行代码短还好,代码一长,滚动条就出来了,有点破坏整体风格,虽然有些人可能喜欢滚动条。

暂时先用着WP-Syntax了,毕竟用到代码的地方并不是很多,有空再去网上找找其他的高亮插件了。

WP的代码高亮提示插件

@玛酷猫16 年前

11/11
21:22
心情点滴 建站日志

单身同胞们节日快乐

也不知道是哪年,“光棍节”悄然诞生,据说是诞生于网络,不过已经无从考证。中午和一帮“光棍”杀向酒店,要了几个菜,海吃海喝了一通。中午的盒饭适量太差,很久没有改善伙食了,趁着这个机会好好满足下,O(∩_∩)O

下班顺便理了个发,很久没又修理头发了,早上起来一照镜子差点吓一跳,-_-!

晚上把小窝模板调整了下,首先是把备案号加上,昨天都忘了加了,幸好没被查到,要不铁定关站处理。字体调成13像素,毕竟在19’上面看12像素字还是很难受的,调完感觉13字也小了点,先凑合着看了,不行再调大1个像素。分类和标签挪到了文章上面,醒目了些。总感觉文章底部经常被忽略。

先去洗个澡,清理下碎头发,回来把边栏处理下,基本搞定,后面就慢慢调细节啦,明天去找人做个头图片O(∩_∩)O

光棍节最流行歌曲:单身情歌
[audio:http://love.hinews.cn/mt071229ab/2008/by_qrjzt03020080213danshenqingge.mp3]

附上光棍节庆祝方式[转自百度百科]
Read More →

单身同胞们节日快乐

@玛酷猫16 年前

11/10
23:26
心情点滴 建站日志

小窝重新装修

重新装潢了下小窝,铺了下地板,换了新的墙纸,加了新的灯饰,顺便掏了个壁橱,不过幸好没掏到隔壁去O(∩_∩)O~~

升级到最新的2.6.3,我原来的版本太低了。。。按照说法升级后,直接白屏,不管输入wp-adminupgrade.php还是wp-admininstall.php还是后台登陆亦或是首页。无奈只有把服务器上程序删除了,把2.6.2程序传到服务器上,upgrade更新数据库后,终于可以进后台了。菜单模式变了,一时好不习惯,上面硕大个提示:“主题损坏,还原为默认主题。”我把文件都删了,不提示才怪。-_-!想想原来的K2主题本来就修改了一些代码,这回八成不兼容了,在网上寻觅了一番,看到 [name]inove,MG12,http://www.neoease.com/inove/[/name] 的一款主题十分喜欢,就拿来先用了。不过感觉头部有点不协调,右侧的内容还是默认的,明天再慢慢调了,今天不早了,先睡觉了。

小窝重新装修

@玛酷猫17 年前

01/9
18:30
建站日志

猫窝私语域名调整

之前www.makumo.com的域名本来打算做个动漫文学站的,域名一直指向另一空间,不过一直找不到好的建站程序,再加上不是很空闲,动漫文学站一直没建立起来,只是简简单单放了几个页面,正好那个空间要到期了,也不准备续费了,把域名转过来了。以后慢慢达理我的小窝。先除除草,一段时间没来,有杂草丛生了……

猫窝私语域名调整