猫窝私语 — 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/30
21:51
读书笔记 前端

读书笔记(一)——可以遗忘的HTML标签

长久以来项目网站首页结构一直没有改变,依旧是TABLE结构,随着越做越大,栏目内容越来越多,网站首页也越来越臃肿,访问打开时间也越来越长。趁着年末改版,首页DIV+CSS化也提上日程,虽然这部分工作主要是设计部门处理,不过也借着这个机会好好学一学页面重构方面的知识。最近借阅了本《CSS实战手册(CSS THE MISSING MANUAL)》,还在慢慢阅读中。俗话说:好记性不如烂笔头。把一些好东东记录下来,方便日后查找。这次主要提下一些可以遗忘的HTML标签和一些技巧。 😉

可以遗忘的标签:

<font>标签:这个在自己设计页面是也经常用到,有时候为了某几个字的表现效果,懒得去设置一个新的样式,直接使用<font>标签了,常常一个页面有着许多font,代码看起来有些凌乱,修改起来也不是很方便。

<b>、<i>粗体和斜体标签,这个自己倒是不用,基本在用<strong>,用Dreamweaver设计直接Ctrl+B就OK,斜体自己似乎从做网页也来就没有用过,总感觉字变斜了看起来怪怪的。 :bhan: 做图片的时候到偶尔会用用。

用于网页布局的<table>标签。这个就是自己期望达到的目标:除了显示数据表、图表之外,少或者不用<table>来显示网页结构,这个还需要慢慢来,毕竟是改变一种设计习惯,还需要一定过程

一些展现表现形式的标签属性,类如:color,backgroud,border,一系列调整边距属性,对齐属性等等。如果用过Dreamweaver CS4会发现在元素的设置里面没有了 backgroud 这个填写框了,(家里没装CS4,明天去单位补个图),这些效果的代码代码都很长,使代码变得臃肿的主要原因之一,而且可读性也大幅度下降,其实这些都可以用CSS来定义表现。

不要滥用<br />标签。这块就不是很明白,按书上所写“浏览器自动地——有时令人愤怒地——在段落之间插入空格”,我倒是还没遇到过,先记下来了,或许书中后面、以后工作中会慢慢搞清楚。

一些技巧:

使用<h1>等系列标签来表示标题,使页面层次更分明,更主要的是有助于搜索引擎的收录;
使用无序列表<ul>来显示菜单、一些相关项目;使用有序列表<ol>来显示排名、有顺序的项目;使用<dl><dt><dd>来显示术语表;
使用一些生僻的标签来展示一些特殊的信息,如<cite><address>等等;
注意标签闭合;
使用W3C校验器来校验,能发现一些不容易看出的拼写、不规范等等错误;

暂时先写到这吧,书才刚开始看。以后再慢慢写了 :mrgreen:

PS:读书学习中,难免有一些认识不足或者错误理解,欢迎斧正。

PS2:发现用高亮代码显示来当做<ol>用也挺不错 😀

读书笔记(一)——可以遗忘的HTML标签

@玛酷猫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
13:43
他山之石

阿江: 网站要专业,更要简单

不知道多久以前,上网是被作为一门技术来看待的,甚至曾经有人把上网和开车一起看成21世纪必须掌握的两门技术之一,internet是神秘的,是高科技。但现在不同了,网络不再是工具,而变成了玩具,男的女的老的少的,懂电脑的不懂电脑的,有文化的没文化的,会打字的不会打字的,统统都来上网了,任何一个人过来,你只要告诉他哪个是电源开关,点哪个图标上网,点哪个图标聊天就行了。

于是,网络不再属于少数“精英”,而开始属于多数“菜鸟”。

菜鸟,这不是歧视,因为让所有的人去学习网络技术,就像让所有的中国人去学习英语一样是不切实际的。所以,除非他们对技术感兴趣,否则我们就应当让网民们不需要学习就可以使用互联网。

为什么网址站会成为千千万万电脑的首页?因为她让上网变得只需要点击,打开电脑,点IE,hao123就出来了,然后想看新闻看新闻,想看股票看股票,想看天气看天气,想查车票查车票,想玩游戏玩游戏,想听歌就听歌,只要会点鼠标就行了。很多人,网龄很长,却根本不知道什么叫“输入网址”,那些带着斜杠、点点和字母的东西对很多中国人来说还是很要命的。

说到字母,现在英文的或者长的域名,在普通网民圈儿里是很难混的。很早以前,有个网友,她的个人主页域名(当时还是二级域名)主词是rosestory,直译是玫瑰故事?对懂英文的人来说,还挺有意境的,但是,对不懂英文的人来说,这么长的域名可要了命了,记住的可能性基本是零。

说到域名好不好记,典型的就是百度,很多不怎么会输网址的人也会输baidu.com,而要让他们输google.com,那可是相当困难了。而且,人们记住的是“百度”,.com是没人去记的,只是见多了就想着那么写才像是网址,所以这么说来,google虽然用上了更短的g.cn,普通网民照样记不住。(另外,百度的mp3搜索、知道、贴吧,这些都是充分迎合菜鸟级的网民而获得成功的,具体就不细说了,否则满篇都说他了,跟百度枪文似的。)

还是说回域名来,我的免费统计用51.La的域名,当时犹豫很久,最后还是用了,毕竟.com里能注到的短域名实在不多,而如果用含有stat那样的英文单词的域名,又很担心英文不好的站长们记不住,还不如51.La这样的拼音名好记呢。但是大大的问题就是这个La后缀,在很多人看来,后面没有.com就不像是网址,当有人求助“怎样知道网站的访问量”,别人给回“51.La”,可能问的人根本就不知道回的人是在说啥。有人要问,站长都知道有La这个后缀吧?非也,很多站长都是在搞明白了51.La之后才知道了La这个后缀。为了让人记住这个后缀,我不得不在Logo和网站名称中充分体现.La的存在,但即便如此,很多新站长还是要经过一小段时间的迷茫才能接受,从这种意义上说,相对于“阿江统计”,“51.La”并不便于对新站长认知“统计”进行启蒙。

在迎合普通网民的战斗中,英文败给拼音,而拼音又败给数字,因为懂拼音的人虽然比懂英文的多,但还是有很多人不懂拼音,并且南方因为方言和普通话差别大,懂拼音的人也常会拼错,数字则不同,人人都懂,而且数字还有易听易记的特点。于是,xxx123之类的曾经被站长们看不起的域名大行其道,风靡一时;QQ战胜了电子信箱,成为普通网民的主要沟通工具。

有一个现象,站长类论坛里很少出现的,其他论坛出现的多,就是常常会有人问如何上传图片,甚至很多论坛的置顶帖子里都会有一个教人上传图片的教程,即便如此,还是很多人传不了,会出现很多类似《到底怎样上图啊》、《终于学会上图了》之类的帖子来。由此可见现在网络中上传图片的功能仍然不太适合普通网民使用,不知道这要等多久之后可以有所改观。

我们看音乐站。以前的音乐站,进入之后首页是几张新专辑的图片、介绍,然后就是歌手分类列表。访问者打开网站,先找到自己喜欢的歌手,再点开专辑列表,再点开专辑找到要听的歌。现在的音乐站变了,首页罗列了几百上千首时下最热门的歌曲,点一下就能听。这就是变化,实际上,现在大多数网民要的就是这种的,打开首页直接选几首热门的歌就开听了。

再说说网络游戏。很早以前是江湖,基于文字的角色扮演网络武侠游戏,后来被传奇之类的客户端游戏取代了,原因很简单,前者太抽象了,什么都是文字,送朵献花扔个炸弹都是靠点按钮的,像在控制一个机器,而结果也只是屏幕上的一行字,“×××向×××投掷炸弹,×××生命值减少×××”。而到了传奇,这些就都直观多了,谁站在谁的哪个方向、长啥德性都一目了然,扔个暗器过去就能看到血溅梅花的效果。再看现在,WEB游戏又有取而代之的趋势了,WEB游戏优势明显的很,不用下客户端,不用升级,不需要老板键,一切就像浏览网页一样简单,如此之低的门槛,恐怕网络游戏更大范围的风暴来临也不足为怪了。怎样看管好你的孩子,或者你的父母怎样看管好你,将会是更大的问题了。

还有就是个人主页的变化,以前网民上网两件大事,一是申请免费信箱,二就是申请免费主页,做一个个人主页才表示自己上网了,见人不但要留信箱,还要留主页。虽然有主页,但并不把自己当站长看的,因为拥有主页只能说明你是一个老鸟网民,还照样是网民的身份。现在的新网民上网还有类似的事情做,但是多数已不再是个人主页,而是用免费博客、QQ空间、51空间之类的,并且这个群体要比原来个人主页的群体还要大,原因就是门槛降低了,不需要研究技术就可以掌握了。

网络,现在对多数普通网民来说就是一个消遣的场所,其实我个人很希望网民们能像以前的老网民那样有耐心,仔细的研究、品味一下网络里很多优秀的东西,这样的网民当然总量肯定还有不少,但是比例小多了,要把他们找出来太难,要把他们聚集在一起更难。

好像越说越乱,举的例子都不一定恰当,但结论是显而易见的,就是:

作为站长,我们要尽量减少访问者需要“学习掌握”的东西,最好是访问者一进来就知道要怎么做,并且很乐意去做。

我们应当追求“专业”,但更应当追求“简单”,因为网络早已经平民化了。

阿江: 网站要专业,更要简单

@玛酷猫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 →

单身同胞们节日快乐