有位女性,對在同公司上班的某位男職員,突然采取了疏遠的態度,并對他很冷淡。而這位男職員,也好象有意與她唱反調,對她也采取冷淡的態度。公司上司發現兩人冷戰后,就把男職員叫來,忠告他說:“我希望你能改變對女同事的態度,否則就會沒有人理你。”可是,沒過多久,這兩位男女職員就一起去拜訪上司,告訴他說:“我們決定結婚了。”著實令上司大跌眼鏡。從這個例子可以看出,男女兩人過去故意疏遠,只是一種做戲的表現,而實際生活中這樣的例子很多。
女性對意中人故意采取疏遠的態度,原因是不想讓別人知道自己的真心。實際上,女性對某位男性產生好感時,會極力隱瞞自己的真情,而采取完全相反的態度。何況,男女雙方都在同一家公司上班,這件事若是被其他同事知道,會造成很多困擾。所以,他們采取了疏遠的方式。
由此可見,如果與你正在交往過程中的女性,突然對某位男士冷淡起來,或開始說這位男士的壞話,你就該懷疑他們之間的關系了,說不定你的女友已對他有好感。假如你的女友對這位男士不關心,就不會采取這種不自然的態度。假如她真的討厭他,那她反而會在表面上對他友好。因為,一般來說,女性都會有意識地隱藏自己對他人的真實感情。所以,你心儀的女孩子突然疏遠你的時候,往往正是你進攻的大好機會呢。
女性對意中人故意采取疏遠的態度,原因是不想讓別人知道自己的真心。實際上,女性對某位男性產生好感時,會極力隱瞞自己的真情,而采取完全相反的態度。何況,男女雙方都在同一家公司上班,這件事若是被其他同事知道,會造成很多困擾。所以,他們采取了疏遠的方式。
由此可見,如果與你正在交往過程中的女性,突然對某位男士冷淡起來,或開始說這位男士的壞話,你就該懷疑他們之間的關系了,說不定你的女友已對他有好感。假如你的女友對這位男士不關心,就不會采取這種不自然的態度。假如她真的討厭他,那她反而會在表面上對他友好。因為,一般來說,女性都會有意識地隱藏自己對他人的真實感情。所以,你心儀的女孩子突然疏遠你的時候,往往正是你進攻的大好機會呢。
一個男孩深戀一個女孩,但他一直不敢向女孩直言求愛。女孩對他也頗?有情意,卻也是始終難開玉口。兩人試探著,退縮著,親近著,疏遠著—— 不要嘲笑他們的懦弱,也許初戀的人都是如此拒絕和畏懼失敗吧。
一天晚上,男孩精心制作了一張卡片,在卡片上精心書寫了多年藏在心里的話,但他思前想后,就是不敢把卡片親手交給女孩。他握著這張卡片, 愁悶至極,到飯店喝了些酒,竟然微微壯了膽子,卻找女孩。
女孩一開門,便聞見撲鼻的酒氣。看男孩雖然不象喝醉了的樣子,但是微醉著的臉,心中便有一絲隱隱的不快。
“怎么這時候才來?有什么事么?”
“來看看你。”
“我有什么好看的!”女孩沒好氣地把他領進屋。
男孩把卡片在口袋里揣摸了許久,硬硬的卡片竟然有些溫熱和濕潤了,可他還是不敢拿出來。面對女孩含嗔的臉,他心中充溢著春水般的柔波,那柔波在明媚的陽光下,一漾一漾的,一顫一顫的。
他們漫長地沉默著。也許是因為情緒的緣故,女孩的話極少。
桌上的小鐘表指向了11點鐘。
“我累了。”女孩嬌嫩地伸腰,慢條斯理地整理著案上的書本,不經意的神情中流露出辭客的意思。
男孩突然靈機一動。他百無聊賴地翻著一本大字典,又百無聊賴地把字典放到一邊。過了一會兒,他在紙上寫下一個“罌”字問女孩:“哎,你說這個字念什么?”
“ying”女孩奇怪地看著他,“怎么了?”
“是讀‘yao'吧。”他說。
“是‘ying'。”
“我記得就是‘yao'。我自打認識這個字起就這么讀它。”
“你一定錯了。”女孩冷淡地說。他真是醉了。她想。
男孩有點無所適從。過了片刻,他漲紅著臉說:“我想一定念‘yao'。
不信。我們可以查查,呃,查查字典。”
他的話竟然有些結巴了。
“沒必要,明天再說吧。你現在可以回去休息了。”女孩站起來。 “查查字典好嗎?”他輕聲說,口氣含著一絲懇求的味道。
女孩心中一動。但轉念一想:他真是醉得不淺。于是,柔聲哄道:“是念‘yao',不用查字典,你是對的。回去休息,好嗎?”
“不,我不對我不對!”男孩急得幾乎要流下淚來,“我求求你,查查字典,好嗎?”
看著他胡鬧的樣子,女孩想:他真是醉得不可收拾。她繃起了小臉:
“你再不走我就生氣了,今后再也不會理你!”
“好,我走,我走。”男孩急忙站起來,向門外緩緩走去。“我走后,你查查字典,好嗎?”
“好的。”女孩答應道。她簡直想笑出來。
男孩走出了門。
女孩關燈睡了。
然而女孩還沒有睡著,就聽見有人敲她的窗戶。輕輕地,有節奏地叩擊著。“誰?”女孩在黑暗中坐起身。
“你查字典了嗎?”窗外是男孩的聲音。
“神經病!”女孩喃喃罵道。而后她沉默了。
“你查字典了嗎?”男孩又問。
“你走吧,你怎么這么頑固。”
“你查字典了嗎?”男孩依舊不停地問。
“我查了!”女孩高聲說,“你當然錯了,你從始到終都是錯的!”
“你沒騙我嗎?”
“沒有。鬼才騙你呢。”
男孩很久很久沒有說話。
“保重。”這是女孩聽見男孩說的最后一句話。
當男孩的腳步聲漸漸消逝之后,女孩仍舊在偎被坐著。她睡不著。“你查字典了嗎?”她忽然想起男孩著句話,便打開燈,翻開字典。
在“罌”字的那一頁,睡臥著那張可愛的卡片。上面是再熟悉不過的字體:“我愿用整個生命去愛你,你允許嗎?”
她什么都明白了。
“第二天我就去找他。”她想。那一夜,她輾轉未眠。
第二天,她一早出門,但是她沒見到男孩。男孩躺在太平間里。他死了。 他以為她拒絕了他,離開女孩后又喝了很多酒,結果真的醉了,車禍而死。 女孩無淚。
她打開字典,找到“罌”字。里面的注釋是:“罌粟,果實球形,未成熟時,果實中有白槳,是制鴉片的原料。”
罌粟是一種極美的花,且是一種極好的藥,但用之不當時,竟然也可以是致命的毒品,人生中一些極美珍貴的東西,如果不好好留心和把握,便常常失之交臂,甚至一生難得再遇再求。有時這些逝去的美好會變成一把鋒利的刀子,一刀一刀地在你心上剜出血來。
命運的無常和叵測,有誰能夠明了和預知呢?
“你查字典了嗎?”
如果有人這樣詢問你,你一定要查一查字典。或許你會發現:你一直以為對的某個字,其實是錯誤的。或者還有另一種讀法。
一天晚上,男孩精心制作了一張卡片,在卡片上精心書寫了多年藏在心里的話,但他思前想后,就是不敢把卡片親手交給女孩。他握著這張卡片, 愁悶至極,到飯店喝了些酒,竟然微微壯了膽子,卻找女孩。
女孩一開門,便聞見撲鼻的酒氣。看男孩雖然不象喝醉了的樣子,但是微醉著的臉,心中便有一絲隱隱的不快。
“怎么這時候才來?有什么事么?”
“來看看你。”
“我有什么好看的!”女孩沒好氣地把他領進屋。
男孩把卡片在口袋里揣摸了許久,硬硬的卡片竟然有些溫熱和濕潤了,可他還是不敢拿出來。面對女孩含嗔的臉,他心中充溢著春水般的柔波,那柔波在明媚的陽光下,一漾一漾的,一顫一顫的。
他們漫長地沉默著。也許是因為情緒的緣故,女孩的話極少。
桌上的小鐘表指向了11點鐘。
“我累了。”女孩嬌嫩地伸腰,慢條斯理地整理著案上的書本,不經意的神情中流露出辭客的意思。
男孩突然靈機一動。他百無聊賴地翻著一本大字典,又百無聊賴地把字典放到一邊。過了一會兒,他在紙上寫下一個“罌”字問女孩:“哎,你說這個字念什么?”
“ying”女孩奇怪地看著他,“怎么了?”
“是讀‘yao'吧。”他說。
“是‘ying'。”
“我記得就是‘yao'。我自打認識這個字起就這么讀它。”
“你一定錯了。”女孩冷淡地說。他真是醉了。她想。
男孩有點無所適從。過了片刻,他漲紅著臉說:“我想一定念‘yao'。
不信。我們可以查查,呃,查查字典。”
他的話竟然有些結巴了。
“沒必要,明天再說吧。你現在可以回去休息了。”女孩站起來。 “查查字典好嗎?”他輕聲說,口氣含著一絲懇求的味道。
女孩心中一動。但轉念一想:他真是醉得不淺。于是,柔聲哄道:“是念‘yao',不用查字典,你是對的。回去休息,好嗎?”
“不,我不對我不對!”男孩急得幾乎要流下淚來,“我求求你,查查字典,好嗎?”
看著他胡鬧的樣子,女孩想:他真是醉得不可收拾。她繃起了小臉:
“你再不走我就生氣了,今后再也不會理你!”
“好,我走,我走。”男孩急忙站起來,向門外緩緩走去。“我走后,你查查字典,好嗎?”
“好的。”女孩答應道。她簡直想笑出來。
男孩走出了門。
女孩關燈睡了。
然而女孩還沒有睡著,就聽見有人敲她的窗戶。輕輕地,有節奏地叩擊著。“誰?”女孩在黑暗中坐起身。
“你查字典了嗎?”窗外是男孩的聲音。
“神經病!”女孩喃喃罵道。而后她沉默了。
“你查字典了嗎?”男孩又問。
“你走吧,你怎么這么頑固。”
“你查字典了嗎?”男孩依舊不停地問。
“我查了!”女孩高聲說,“你當然錯了,你從始到終都是錯的!”
“你沒騙我嗎?”
“沒有。鬼才騙你呢。”
男孩很久很久沒有說話。
“保重。”這是女孩聽見男孩說的最后一句話。
當男孩的腳步聲漸漸消逝之后,女孩仍舊在偎被坐著。她睡不著。“你查字典了嗎?”她忽然想起男孩著句話,便打開燈,翻開字典。
在“罌”字的那一頁,睡臥著那張可愛的卡片。上面是再熟悉不過的字體:“我愿用整個生命去愛你,你允許嗎?”
她什么都明白了。
“第二天我就去找他。”她想。那一夜,她輾轉未眠。
第二天,她一早出門,但是她沒見到男孩。男孩躺在太平間里。他死了。 他以為她拒絕了他,離開女孩后又喝了很多酒,結果真的醉了,車禍而死。 女孩無淚。
她打開字典,找到“罌”字。里面的注釋是:“罌粟,果實球形,未成熟時,果實中有白槳,是制鴉片的原料。”
罌粟是一種極美的花,且是一種極好的藥,但用之不當時,竟然也可以是致命的毒品,人生中一些極美珍貴的東西,如果不好好留心和把握,便常常失之交臂,甚至一生難得再遇再求。有時這些逝去的美好會變成一把鋒利的刀子,一刀一刀地在你心上剜出血來。
命運的無常和叵測,有誰能夠明了和預知呢?
“你查字典了嗎?”
如果有人這樣詢問你,你一定要查一查字典。或許你會發現:你一直以為對的某個字,其實是錯誤的。或者還有另一種讀法。
多體諒你身邊最愛你的人
[ 2007-03-25 05:23:34 | 作者: lzis ]
丈夫
有時,他是你最大的孩子
脫下西裝后,容許他換一張臉
容許他總是關不住牙膏蓋子......
容許他老是要努力暗示后
才記得你的生日
其實,在堅強的外表下他的內心
也需要你小小的縱容和溺愛
妻子
換個角色做做看
是否你要求她的
總是和要求***一樣理所當然
偶爾 換你拿起奶瓶
偶爾 換你穿上圍裙
柴米油鹽之外
多給她一點關懷 體諒
和甜言蜜語吧!
孩子
他的小手
將來是怎樣的大手?
要求他成績單上的數字
也教他欣賞大自然的法則
鼓勵他必須堅強
也要他有一顆柔軟的心
和他說話,不止用到嘴也用到了耳:
在他長大之前和他站的一樣高看世界
父母
珍惜,在來得及的時候
孩子的哭聲總比父母的嘆息
得到更多的疼惜
你不會忘記孩子放學時間
卻忽略父母盼你回家的殷切
物質彌補不了精神的寂寞
最重要的是
多一點時間給父母
手足
stand by me 站在我這邊
以為爸爸對哥哥偏心一點
媽媽對妹妹疼愛一點
其實中氖直扯際僑?BR>血濃于水的親情
總在最需要的時候
他們就站在我這邊
情人
愛有多少,付出也要有多少
愛情不是單行道
他(她)的好更不是理所當然
生氣時,想想他(她)的可愛
抱怨時,想想他(她)的委屈
冷戰時,想想他(她)的溫暖
兩人都懂得付出,愛就會久遠
畢竟,真心相愛并不容易,不要輕言別離
送心愛的人回家,哪里都順路!
朋友
有時像一陣霧
有時像一片云
孤獨時的思念
生活中的良師益友
相識于不經意間
重逢在危難之時
沒有朋友的牽掛
縱有家財萬貫
也是一條孤單的魚
有時,他是你最大的孩子
脫下西裝后,容許他換一張臉
容許他總是關不住牙膏蓋子......
容許他老是要努力暗示后
才記得你的生日
其實,在堅強的外表下他的內心
也需要你小小的縱容和溺愛
妻子
換個角色做做看
是否你要求她的
總是和要求***一樣理所當然
偶爾 換你拿起奶瓶
偶爾 換你穿上圍裙
柴米油鹽之外
多給她一點關懷 體諒
和甜言蜜語吧!
孩子
他的小手
將來是怎樣的大手?
要求他成績單上的數字
也教他欣賞大自然的法則
鼓勵他必須堅強
也要他有一顆柔軟的心
和他說話,不止用到嘴也用到了耳:
在他長大之前和他站的一樣高看世界
父母
珍惜,在來得及的時候
孩子的哭聲總比父母的嘆息
得到更多的疼惜
你不會忘記孩子放學時間
卻忽略父母盼你回家的殷切
物質彌補不了精神的寂寞
最重要的是
多一點時間給父母
手足
stand by me 站在我這邊
以為爸爸對哥哥偏心一點
媽媽對妹妹疼愛一點
其實中氖直扯際僑?BR>血濃于水的親情
總在最需要的時候
他們就站在我這邊
情人
愛有多少,付出也要有多少
愛情不是單行道
他(她)的好更不是理所當然
生氣時,想想他(她)的可愛
抱怨時,想想他(她)的委屈
冷戰時,想想他(她)的溫暖
兩人都懂得付出,愛就會久遠
畢竟,真心相愛并不容易,不要輕言別離
送心愛的人回家,哪里都順路!
朋友
有時像一陣霧
有時像一片云
孤獨時的思念
生活中的良師益友
相識于不經意間
重逢在危難之時
沒有朋友的牽掛
縱有家財萬貫
也是一條孤單的魚
鹽的欺騙在咖啡里舞蹈
[ 2007-03-25 05:22:01 | 作者: lzis ]
他和她的相識是在一個晚會上,那時的她年輕美麗,身邊有很多的追求者,而他卻是一個很普通的人。因此,當晚會結束,他邀請她一塊去喝咖啡的時侯,她很吃驚,然而,出于禮貌,她還是答應了。
坐在咖啡館里,兩個人之間的氣氛很是尷尬,沒有什么話題,她只想盡快結束。但是當小姐把咖啡端上來的時候,他卻突然說:“麻煩你拿點鹽過來,我喝咖啡習慣放點鹽。”當時,她愣了,小姐也愣了,大家的目光都集中到了他身上,以至于他的臉都紅了。
小姐把鹽拿過來了,他放了點進去,慢慢地喝著。她是好奇心很重的女子,于是很好奇地問他:“你為什么要加鹽呢?”他沉默了一會,很慢的幾乎是一字一頓地說:“小時候,我家住在海邊,我老是在海里泡著,海浪打過來,海水涌進嘴里,又苦又咸。現在,很久沒回家了,咖啡里加鹽,就算是想家的一種表現吧。”她突然被打動了,因為,這是她第一次聽到男人在她面前說想家,想家的男人必定是顧家的男人,而顧家的男人必定是愛家的男人。她忽然有一種傾訴的欲望,跟他說起了遠在千里之外的故鄉,氣氛漸漸的變得融洽起來,兩個人聊了很久,并且她沒有拒絕他送她回家。
再以后,兩個人頻繁地約會,她發現他實際上是一個很好的男人,大度、細心、體貼,符合她所欣賞的所有的優秀男人應該具有的特性。她暗自慶幸,幸虧當時的禮貌,才沒有和他擦肩而過。她帶他去遍了城里的每家咖啡館,每次都是她說:“請拿些鹽來好嗎?我的朋友喜歡咖啡里加鹽。”再后來,就像童話書里所寫的一樣,“王子和公主結婚了,從此過著幸福的生活。”他們確實過得很幸福,而且一就是四十多年,直到他前不久得病去世。
故事似乎要結束了,如果沒有那封信的話。
那封信是他臨終前寫的,是寫給她的:“原諒我一直都欺騙了你,還記得第一次請你喝咖啡嗎?當時氣氛差極了,我很難受,也很緊張,不知怎么想的,竟然對小姐說拿些鹽來,其實我不加鹽的,當時既然說出來了,只好將錯就錯了。沒想到竟然引起了你的好奇心,這一下,讓我喝了半輩子的加鹽的咖啡。有好多次,我都想告訴你,可我怕你會生氣,更怕你會因此離開我。現在我終于不怕了,死人總是很容易被原諒的,對不對?今生得到你是我最大的幸福,如果有來生,我還希望能娶到你,只是,我可不想再喝加鹽的咖啡了,咖啡里加鹽,你不知道,那味道,有多難喝!”信的內容讓她吃驚,也讓她有種被欺騙的感覺。然而,他不知道,她多想告訴他:“她是多么高興,有人為了她,能夠做出這樣的一生一世的欺騙。”
坐在咖啡館里,兩個人之間的氣氛很是尷尬,沒有什么話題,她只想盡快結束。但是當小姐把咖啡端上來的時候,他卻突然說:“麻煩你拿點鹽過來,我喝咖啡習慣放點鹽。”當時,她愣了,小姐也愣了,大家的目光都集中到了他身上,以至于他的臉都紅了。
小姐把鹽拿過來了,他放了點進去,慢慢地喝著。她是好奇心很重的女子,于是很好奇地問他:“你為什么要加鹽呢?”他沉默了一會,很慢的幾乎是一字一頓地說:“小時候,我家住在海邊,我老是在海里泡著,海浪打過來,海水涌進嘴里,又苦又咸。現在,很久沒回家了,咖啡里加鹽,就算是想家的一種表現吧。”她突然被打動了,因為,這是她第一次聽到男人在她面前說想家,想家的男人必定是顧家的男人,而顧家的男人必定是愛家的男人。她忽然有一種傾訴的欲望,跟他說起了遠在千里之外的故鄉,氣氛漸漸的變得融洽起來,兩個人聊了很久,并且她沒有拒絕他送她回家。
再以后,兩個人頻繁地約會,她發現他實際上是一個很好的男人,大度、細心、體貼,符合她所欣賞的所有的優秀男人應該具有的特性。她暗自慶幸,幸虧當時的禮貌,才沒有和他擦肩而過。她帶他去遍了城里的每家咖啡館,每次都是她說:“請拿些鹽來好嗎?我的朋友喜歡咖啡里加鹽。”再后來,就像童話書里所寫的一樣,“王子和公主結婚了,從此過著幸福的生活。”他們確實過得很幸福,而且一就是四十多年,直到他前不久得病去世。
故事似乎要結束了,如果沒有那封信的話。
那封信是他臨終前寫的,是寫給她的:“原諒我一直都欺騙了你,還記得第一次請你喝咖啡嗎?當時氣氛差極了,我很難受,也很緊張,不知怎么想的,竟然對小姐說拿些鹽來,其實我不加鹽的,當時既然說出來了,只好將錯就錯了。沒想到竟然引起了你的好奇心,這一下,讓我喝了半輩子的加鹽的咖啡。有好多次,我都想告訴你,可我怕你會生氣,更怕你會因此離開我。現在我終于不怕了,死人總是很容易被原諒的,對不對?今生得到你是我最大的幸福,如果有來生,我還希望能娶到你,只是,我可不想再喝加鹽的咖啡了,咖啡里加鹽,你不知道,那味道,有多難喝!”信的內容讓她吃驚,也讓她有種被欺騙的感覺。然而,他不知道,她多想告訴他:“她是多么高興,有人為了她,能夠做出這樣的一生一世的欺騙。”
我珍藏著一枚鈕扣,天藍色,圓圓的。有時坐在小窗前,把藍扣子放在掌心,在明月的清輝下端詳,藍扣子泛著柔潤動人的光澤,宛若一個晶瑩的藍色夢幻。
夢幻里,是那段已逝去多年的少年故事。
那年我考上了鎮里的初中,見到了許多新鮮的面孔。那時我酷愛著繪畫,便用破筆頭逐一將這些面孔涂抹到我粗糙的畫紙上。現在看來,自然是畫得奇形怪狀,烏七八糟,但那時卻博得了同學們的許多喝彩。因為那時我已稍稍懂得了如何突出特征,因而時常有一些“傳神之筆”。比如將鼻子畫得高大如煙囪,同學們就知道是高鼻子唐廣寧,將嘴畫得闊如臉盆,無疑是大嘴孫小泉了。我幾乎每天都要完成一幅“杰作”,趁大家去買午飯的時候,用唾沫粘在教室后面的墻壁上,大家回到教室便有了很好的笑料。倘若畫的是他本人,那自然便黃了臉,在別人的調笑聲中扯下來撕個粉碎。有幾個女生因此好幾天對我都是呲牙咧嘴橫眉冷對。好在并沒有人告到班主任那兒去,因為那時我的考試成績從來都是第一,班主任跟我關系相當好,背地里叫我喊他大哥,雖然他已有五十幾了。
沒有多久,班上六十余人差不多都已在我的畫亮了相,最后便剩下白子惠。白子惠是一個文靜的女孩,時常穿一件舊式的淡藍色碎花襯衣,袖口還有兩塊補丁。
她是個讓我為難的女孩。那張白皙的小臉實在是標致極了,我回頭捕捉“特征”的時候,時常癡癡地看得呆了。我花了整整一個上午畫出她的頭像,可我實在捕捉不到半點令人發笑的地方。最后我用紅墨水染紅了她的小嘴,紅紅的墨水滲出唇外,“她”便像剛喝了鮮血似的,猙獰而恐怖。
吃午飯的時候,大家自然是又鬧又笑,大拍我的馬屁。白子惠則靜靜地坐著,讀著宋詞。
要是別人,一定會將畫像扯下來,可是白子惠沒有。上課鈴響了,老師的腳步聲近了,白子惠依然靜靜地坐在那兒。我慌忙跑了過去,在眾人的哄笑聲里扯下了它。這是我第一次狼狽不堪自作自受。扭頭看白子惠時,她正抿著小嘴偷偷地笑。
那天下了晚自習,我還在攻一道數學題。高鼻子唐廣寧這時開始翻別人的抽屜了。過了一會兒,他喊我:快過來瞧瞧,白子惠畫了你的像哩。我好奇地跑過去,果然見到白子惠抽屜里有一本厚厚的畫稿,畫了山水花鳥,還有班上的許多女孩,而男孩只畫了我一個,而且還題了一首小詩,只是詩的第六行缺了第一個字:“魏時楓葉/紅到今否/青山白云低處/誰在無言/最最難忘/□不曾隨流去/你可在枝頭/瑟瑟發愁。”我讀得摸頭不知腦,唐廣寧卻叫了起來:“缺的那個字一定是‘愛’,你把每行第一個字串起來,就是‘魏紅青誰最愛你’,哈哈,白子惠愛上你啦!”我說你別胡說別胡說,心中卻有一種甜甜的感覺。唐廣寧忽然又冒出一句:“要是缺的那個字是‘恨’呢?”我的笑臉一時僵住了。
我不得不承認,她的畫比我強多了。她似乎在無意中將每個人美化了許多,使得一個個看上去都是那么善良而友好。而我卻總是有意地將別人加以丑化。唐廣寧安慰我:白子惠把你畫得這么帥,缺的那個字是“愛”的可能性更大。
初二時,我和白子惠同桌,我便很認真地跟她學起繪畫來。有一次學校舉辦繪畫大賽,她似乎不太關心,我偷偷地將她的一幅畫連同我的數件作品交了上去,沒想到她得了一等獎,而我居然落了選。
學校獎給她一支畫筆和一盒中國畫顏料,她卻送給了我,說:我以后怕是不會再畫畫了。我聽不明白,糊里糊涂地接受了。
漸漸地我發現我去買午飯時白子惠總沒有離開教室,而我買了飯回到教室時她卻已捧著一缸涼開水在慢慢地喝。再后來,我懷疑她總沒有吃午飯,問她,她卻說早吃過了。有好幾次天并不熱,我卻看見她白皙的臉上滲出汗來,下午上課時便昏睡在課桌上,一副無精打采的樣子。老師問一些很簡單的問題,她也常回答得丟三拉四。
后來,我便多買了一份午飯,放在她的桌上。她堅決不肯吃,我便說用飯來換她的畫稿。她便吃一頓午飯,給我兩張畫稿。這樣沒多久,那本畫稿便幾乎全部放進了我的抽屜,只有畫著我頭像的那張畫稿,她還保存著。
那天后排的唐廣寧正在吸墨水,我不小心猛地靠了一下,那墨水瓶便從書堆上倒下來,濺了白子惠一身。
我立即表示說要買一件新的賠她。她說不必了不必了,后來便穿了一身更舊的衣服。那一定是她姐姐穿過的。
那時街上流行紅裙子。我想,白子惠穿上紅裙子一定更加漂亮。
我暗暗地籌錢,先是賣了新涼鞋,后來又半價處理了新華字典。
14歲生日那天我并沒有聲張,因為我怕花掉半分錢。但晚上的時候,要好的同學還是帶了禮物來看我。小小的宿舍里彌漫著蛋糕的清香,紅紅的燭光映紅了許多天真的臉……我打開錄音機,大家便在流行歌曲中大叫大嚷地鬧開了。
這時,我忽然發現白子惠微笑著站在門口,我立刻迎了上去。她緩緩低下頭,用力地扯下了她上衣正中的一顆藍扣子,遞給我,輕輕地說:祝你生日快樂!我伸手接扣子的時候,順勢握住她的手,那只手是多么的小巧光滑,還在微微地顫動呢!明月的清輝勾勒出她亮麗柔美的曲線。她的臉,在紅紅的燭光中,顯得異常的嬌艷動人。我靜靜地看著她,她也靜靜地看著我。
那時刻,我仿佛聽到了一種成長的聲音,14歲呵,我的14歲!男同學還在大搶蛋糕,只有唐廣寧扭過頭偷偷看了我們一眼……
第二天,我發現我的課桌上擺放著已賣出的新華字典和那雙新涼鞋。唐廣寧說是白子惠幫我贖回來的。
而白子惠卻一整天沒來上課。
我有一種預感:白子惠可能要退學了。
我用節省的錢以及部分生日禮物,再加上半籮筐好話,才從服裝店換回一條紅裙子。
白子惠最后一次來學校了。她把所有的書都送給了周圍的同學。送給我的最多,其中有那本宋詞。她只帶走了那張畫著我的畫稿。
她走出校門的時候,我追了上去,硬把那條紅裙子塞給了她。
那年下了一場罕見的大雨,洪水幾乎淹死了我們那塊平原上所有的莊稼。聽人說,洪水之后,白子惠跟隨著父母姐弟遷回了四川老家,是一個叫做蓬溪的地方。
后來,我離開鎮中學到縣城念高中了,而唐廣寧留了校教地理。他是校長的兒子,成績臭得很,地理教到現在也還不知尼羅河與亞馬孫河誰更長。但和我關系不錯,有一次他寫信給我,說白子惠給我來信了,他拆看了,里面還有一張照片,是微笑著的白子惠穿著紅裙子,美得很哩。他叫我有空去取。我立即請了假,找到唐廣寧時,他卻說不見了,還陪我找了整整一上午,結果啥也沒找到。問他信中的內容,他支支吾吾說記不得了。
后來我懷疑是唐廣寧把信和照片藏了起來,因為他也一直喜歡著白子惠呢。現在想一想,也許白子惠根本就沒有寄來信和照片,只是唐廣寧認認真真跟我開了個玩笑吧。
這些年來,每逢我生日的時候,我便會倚在門口,呆呆地出神,期盼明月的清輝里能走來穿著紅裙子的白子惠。然而總沒有,有的只是那枚藍扣子在我的掌心泛著柔潤動人的光澤。
我還在畫畫,一直畫著同一幅畫。畫上白子惠穿著紅裙子,微微地笑著。旁邊還題有一首小詩:那粒藍扣子/從誰的心窩蹦出/落在我的相思里/從此孤寂/穿紅裙的女孩/坐在蓬溪/可還讀著宋詞。
夢幻里,是那段已逝去多年的少年故事。
那年我考上了鎮里的初中,見到了許多新鮮的面孔。那時我酷愛著繪畫,便用破筆頭逐一將這些面孔涂抹到我粗糙的畫紙上。現在看來,自然是畫得奇形怪狀,烏七八糟,但那時卻博得了同學們的許多喝彩。因為那時我已稍稍懂得了如何突出特征,因而時常有一些“傳神之筆”。比如將鼻子畫得高大如煙囪,同學們就知道是高鼻子唐廣寧,將嘴畫得闊如臉盆,無疑是大嘴孫小泉了。我幾乎每天都要完成一幅“杰作”,趁大家去買午飯的時候,用唾沫粘在教室后面的墻壁上,大家回到教室便有了很好的笑料。倘若畫的是他本人,那自然便黃了臉,在別人的調笑聲中扯下來撕個粉碎。有幾個女生因此好幾天對我都是呲牙咧嘴橫眉冷對。好在并沒有人告到班主任那兒去,因為那時我的考試成績從來都是第一,班主任跟我關系相當好,背地里叫我喊他大哥,雖然他已有五十幾了。
沒有多久,班上六十余人差不多都已在我的畫亮了相,最后便剩下白子惠。白子惠是一個文靜的女孩,時常穿一件舊式的淡藍色碎花襯衣,袖口還有兩塊補丁。
她是個讓我為難的女孩。那張白皙的小臉實在是標致極了,我回頭捕捉“特征”的時候,時常癡癡地看得呆了。我花了整整一個上午畫出她的頭像,可我實在捕捉不到半點令人發笑的地方。最后我用紅墨水染紅了她的小嘴,紅紅的墨水滲出唇外,“她”便像剛喝了鮮血似的,猙獰而恐怖。
吃午飯的時候,大家自然是又鬧又笑,大拍我的馬屁。白子惠則靜靜地坐著,讀著宋詞。
要是別人,一定會將畫像扯下來,可是白子惠沒有。上課鈴響了,老師的腳步聲近了,白子惠依然靜靜地坐在那兒。我慌忙跑了過去,在眾人的哄笑聲里扯下了它。這是我第一次狼狽不堪自作自受。扭頭看白子惠時,她正抿著小嘴偷偷地笑。
那天下了晚自習,我還在攻一道數學題。高鼻子唐廣寧這時開始翻別人的抽屜了。過了一會兒,他喊我:快過來瞧瞧,白子惠畫了你的像哩。我好奇地跑過去,果然見到白子惠抽屜里有一本厚厚的畫稿,畫了山水花鳥,還有班上的許多女孩,而男孩只畫了我一個,而且還題了一首小詩,只是詩的第六行缺了第一個字:“魏時楓葉/紅到今否/青山白云低處/誰在無言/最最難忘/□不曾隨流去/你可在枝頭/瑟瑟發愁。”我讀得摸頭不知腦,唐廣寧卻叫了起來:“缺的那個字一定是‘愛’,你把每行第一個字串起來,就是‘魏紅青誰最愛你’,哈哈,白子惠愛上你啦!”我說你別胡說別胡說,心中卻有一種甜甜的感覺。唐廣寧忽然又冒出一句:“要是缺的那個字是‘恨’呢?”我的笑臉一時僵住了。
我不得不承認,她的畫比我強多了。她似乎在無意中將每個人美化了許多,使得一個個看上去都是那么善良而友好。而我卻總是有意地將別人加以丑化。唐廣寧安慰我:白子惠把你畫得這么帥,缺的那個字是“愛”的可能性更大。
初二時,我和白子惠同桌,我便很認真地跟她學起繪畫來。有一次學校舉辦繪畫大賽,她似乎不太關心,我偷偷地將她的一幅畫連同我的數件作品交了上去,沒想到她得了一等獎,而我居然落了選。
學校獎給她一支畫筆和一盒中國畫顏料,她卻送給了我,說:我以后怕是不會再畫畫了。我聽不明白,糊里糊涂地接受了。
漸漸地我發現我去買午飯時白子惠總沒有離開教室,而我買了飯回到教室時她卻已捧著一缸涼開水在慢慢地喝。再后來,我懷疑她總沒有吃午飯,問她,她卻說早吃過了。有好幾次天并不熱,我卻看見她白皙的臉上滲出汗來,下午上課時便昏睡在課桌上,一副無精打采的樣子。老師問一些很簡單的問題,她也常回答得丟三拉四。
后來,我便多買了一份午飯,放在她的桌上。她堅決不肯吃,我便說用飯來換她的畫稿。她便吃一頓午飯,給我兩張畫稿。這樣沒多久,那本畫稿便幾乎全部放進了我的抽屜,只有畫著我頭像的那張畫稿,她還保存著。
那天后排的唐廣寧正在吸墨水,我不小心猛地靠了一下,那墨水瓶便從書堆上倒下來,濺了白子惠一身。
我立即表示說要買一件新的賠她。她說不必了不必了,后來便穿了一身更舊的衣服。那一定是她姐姐穿過的。
那時街上流行紅裙子。我想,白子惠穿上紅裙子一定更加漂亮。
我暗暗地籌錢,先是賣了新涼鞋,后來又半價處理了新華字典。
14歲生日那天我并沒有聲張,因為我怕花掉半分錢。但晚上的時候,要好的同學還是帶了禮物來看我。小小的宿舍里彌漫著蛋糕的清香,紅紅的燭光映紅了許多天真的臉……我打開錄音機,大家便在流行歌曲中大叫大嚷地鬧開了。
這時,我忽然發現白子惠微笑著站在門口,我立刻迎了上去。她緩緩低下頭,用力地扯下了她上衣正中的一顆藍扣子,遞給我,輕輕地說:祝你生日快樂!我伸手接扣子的時候,順勢握住她的手,那只手是多么的小巧光滑,還在微微地顫動呢!明月的清輝勾勒出她亮麗柔美的曲線。她的臉,在紅紅的燭光中,顯得異常的嬌艷動人。我靜靜地看著她,她也靜靜地看著我。
那時刻,我仿佛聽到了一種成長的聲音,14歲呵,我的14歲!男同學還在大搶蛋糕,只有唐廣寧扭過頭偷偷看了我們一眼……
第二天,我發現我的課桌上擺放著已賣出的新華字典和那雙新涼鞋。唐廣寧說是白子惠幫我贖回來的。
而白子惠卻一整天沒來上課。
我有一種預感:白子惠可能要退學了。
我用節省的錢以及部分生日禮物,再加上半籮筐好話,才從服裝店換回一條紅裙子。
白子惠最后一次來學校了。她把所有的書都送給了周圍的同學。送給我的最多,其中有那本宋詞。她只帶走了那張畫著我的畫稿。
她走出校門的時候,我追了上去,硬把那條紅裙子塞給了她。
那年下了一場罕見的大雨,洪水幾乎淹死了我們那塊平原上所有的莊稼。聽人說,洪水之后,白子惠跟隨著父母姐弟遷回了四川老家,是一個叫做蓬溪的地方。
后來,我離開鎮中學到縣城念高中了,而唐廣寧留了校教地理。他是校長的兒子,成績臭得很,地理教到現在也還不知尼羅河與亞馬孫河誰更長。但和我關系不錯,有一次他寫信給我,說白子惠給我來信了,他拆看了,里面還有一張照片,是微笑著的白子惠穿著紅裙子,美得很哩。他叫我有空去取。我立即請了假,找到唐廣寧時,他卻說不見了,還陪我找了整整一上午,結果啥也沒找到。問他信中的內容,他支支吾吾說記不得了。
后來我懷疑是唐廣寧把信和照片藏了起來,因為他也一直喜歡著白子惠呢。現在想一想,也許白子惠根本就沒有寄來信和照片,只是唐廣寧認認真真跟我開了個玩笑吧。
這些年來,每逢我生日的時候,我便會倚在門口,呆呆地出神,期盼明月的清輝里能走來穿著紅裙子的白子惠。然而總沒有,有的只是那枚藍扣子在我的掌心泛著柔潤動人的光澤。
我還在畫畫,一直畫著同一幅畫。畫上白子惠穿著紅裙子,微微地笑著。旁邊還題有一首小詩:那粒藍扣子/從誰的心窩蹦出/落在我的相思里/從此孤寂/穿紅裙的女孩/坐在蓬溪/可還讀著宋詞。
危險無處不在 賬號防盜防騙小經驗
[ 2007-03-25 04:13:32 | 作者: sun ]
最近盜號很猖獗,大家一定要小心看管自己的賬號!這里有一些小技巧希望大家能注意下。
1、公共場所上網、下機前,務必重起電腦
相信現在網吧電腦都100%安裝了還原系統,重起電腦基本可以杜絕菜鳥級別的盜號手段。
2、上網過程中,堅決不打開別人發你的不明鏈接
記得有一次,正跟玩魔力的朋 友QQ聊天。他莫名其妙的讓我去某網址看照片。我正猶豫的時候,他緊接著發過來一句“千萬別開那網頁,有病毒!我電腦已經感染了……”
上網,不要瀏覽亂七八糟的網站,尤其是現在的一些賣虛擬財產的網站,廣告價格特別便宜,其實就是引人上當。如果你上網感覺不明原因的電腦運行慢了,立刻重起電腦。
3、不要隨便陷入“網戀”
“網戀”騙號,損失的不只是物質財富,還有感情。網絡,只是一個虛擬的世界,不要過于想入非非。賬號盡量不要告訴別人,特別是異性,除非你絕對相信他!
4、賬號、密碼錯位輸入
比如你的賬號是ABcdEFG,你輸入的時候先輸入cd,再用鼠標把光標移動盜最前面輸入AB,再用鼠標把光標移動盜 最后輸入 EFG。這種方法可以讓大多數木馬失效。
1、公共場所上網、下機前,務必重起電腦
相信現在網吧電腦都100%安裝了還原系統,重起電腦基本可以杜絕菜鳥級別的盜號手段。
2、上網過程中,堅決不打開別人發你的不明鏈接
記得有一次,正跟玩魔力的朋 友QQ聊天。他莫名其妙的讓我去某網址看照片。我正猶豫的時候,他緊接著發過來一句“千萬別開那網頁,有病毒!我電腦已經感染了……”
上網,不要瀏覽亂七八糟的網站,尤其是現在的一些賣虛擬財產的網站,廣告價格特別便宜,其實就是引人上當。如果你上網感覺不明原因的電腦運行慢了,立刻重起電腦。
3、不要隨便陷入“網戀”
“網戀”騙號,損失的不只是物質財富,還有感情。網絡,只是一個虛擬的世界,不要過于想入非非。賬號盡量不要告訴別人,特別是異性,除非你絕對相信他!
4、賬號、密碼錯位輸入
比如你的賬號是ABcdEFG,你輸入的時候先輸入cd,再用鼠標把光標移動盜最前面輸入AB,再用鼠標把光標移動盜 最后輸入 EFG。這種方法可以讓大多數木馬失效。
十招準確檢測出間諜軟件
[ 2007-03-25 04:13:22 | 作者: sun ]
1.在使用某種商業軟件或免費軟件的工具檢查之前,盡可能的將機器清理干凈。運行防病毒軟件或反間諜軟件掃描,一旦發現一些異常的項目立即清除。有關這一主題的內容在網絡上有許多。需要注意的是,在進入下一步之前,專家們強烈建議使用并運行一種以上的殺毒、反間諜軟件掃描以便達到徹底清理。
2.建立一個檢查點或者對系統作備份。如果你使用的是Windows XP,那再方便不過了,這樣很快就能建立一個系統恢復點(依次打開:開始菜單――幫助和支持――使用系統還原恢復你對系統的改變,然后點擊創建一個還原點的按鈕)。當然還有其他的方法(對于那些使用Windows家族其他操作系統的人來說是唯一的方法)就是創建一整套系統的備份,包括系統狀態信息(如果其他辦法都不可行的話,你可以使用NTBackup.exe文件;他包含了所有Windows新版本的信息)。這樣的話,萬一在接下來的步驟中出了差錯,還可以將您的系統恢復到前一個正確的狀態。
3.關閉所有不必要的應用程序。一些反間諜軟件從電腦運行的所有線程和注冊表中查找不正常跡象,因此先退出所有應用程序再啟動反間諜程序運行檢查,可以節省大量時間。
4.運行反間諜程序。在這一步,我使用了Hijack This這個軟件。將下載回來的Zip文件解壓到你想要的目錄,然后雙擊HijackThis.exe這個執行文件,會跳出一個帶有提示“Do a system scan and save a logfile.”的窗口。默認狀態下,日志文件會保存在“我的文檔”中,我發現在保存的日志文件名稱中加入日期和時間信息很有用,這樣的話,一個名為hijackthis.log的文件就改名為hijackthis-yymmdd:hh.mm.log(hh.mm是24小時制的幾點幾分)。這樣的話,以后你任何時候再次運行Hijack This(一旦開始運行,它會自動清空以前的日志),都不必擔心丟失以前的日志。因此,時間標記不愧是個很好的方法,這對將來你的日志文件分析非常有用。
5.查看Hijack This結果窗口中顯示的掃描結果。這個結果與寫入日志文件的信息是相同的,并且你會發現在每一個項目的左邊都有一個復選框。如果你核選了某些項目,按下“Fix Checked“按鈕, Hijack This就可以將其徹底清除了。你會發現在那里有很多看上去秘密的文件,你可以對其進行快速掃描,以決定在這時采取何種操作。實際上,真正存在的問題是識別出哪些文件具有潛在的威脅,哪些是必須的,而哪些是無關緊要的。此時分析工具能夠幫上我們的大忙。記住,現在不要關閉Hijack This的查找結果窗口,也不需要進行核選操作,因為在接下來的步驟中我們還會返回這個窗口。
具體方法
6.用Hijack This的日志分析程序運行你的日志文件。你可以使用 Help2Go Detective或者 Hijack This Analysis 這兩個分析工具中的一個。如果兩個軟件都有的話,我個人傾向于Help2Go Detective,但這兩個都值得一試。在Hijack This日志里,你會發現每一個入侵(線程)的特殊信息和相關處理建議,包括哪些可以保留,哪些可以刪除(但卻是無害的),哪些是可疑文件(或許應該刪除,但是還需要進一步分析研究),以及哪些必須刪除(因為確定是惡意病毒)。這時,你可疑檢查所有被確認為惡意病毒的選項,或者與已知的間諜軟件和廣告軟件有關的選項。
7.檢查可疑項目(包括可選的激活項目)。有時你可以查看注冊表名稱或者相關文件和目錄信息,來檢查即使通過分析程序(使用Hijack This很明顯發現的)也沒有識別出的項目,這是可能是你故意安裝或使用的程序的一部分。這些項目經常會被單獨的遺留下來。如果檢查程序和你人為的都沒有發現這些項目,安全選項就會將它們備份然后刪除(然而如果你采取了這個步驟,那么要挽救這種狀況只有存儲一份備份文件或者返回到前一個恢復狀態。)如果你想知道你在查看的是什么文件,就進入下一個附加步驟,用google或其他搜索工具搜索項目的名稱。在99%的情況下我都可以在兩分鐘或更少時間內作出批準與否的決定。只有一少部分項目,最顯著的是dll文件不僅僅需要通過文件名的搜索驗證來裁留。
8.在Hijack This結果窗口核選有害文件和不確定的可疑項目,然后按下“Fix checked”按鈕。你也可以在結果窗口中滾動查看項目,并通過單擊來高亮選擇單獨的項目,接著通過點擊"Info on selected item…."(選中項目的信息……)來獲取這些項目的額外信息。這時來查看這些信息比在上一步驟查看更合適,因為這時分析工具的速度更快而且面向對象更友好。
9.重啟系統查看運行情況。如果系有統運行不正常現象,如應用程序不工作或變得異常,或者系統看上去不太對勁時,你需要決定是否需要返回到恢復狀態或備份狀態。如果Windows不能完成啟動,在系統啟動之初按下F8鍵,直到啟動進入安全啟動菜單,選擇最后一次正確的配置。這樣啟動就沒有問題了,系統啟動之后你還需要退回到恢復點,或者恢復到在第二步備份的狀態。如果你接收這個選項的話,就不需要保存改動了,可以直接越過第10步。
10.最后再運行依次Hijack This掃描:重復步驟4,但是需要注意更改保存日志文件的日期標簽。你可以掃描結果來確定移動的項目已經被徹底清除,或者只需保存你電腦狀態的快照,快速清除就可以了(這樣會對下一次進行同樣的操作產生一個有意義的參照狀態)。
存儲過程之外:SQL注入深入防御
[ 2007-03-25 04:12:59 | 作者: sun ]
幾年以前,對開發者提及”SQL注入”或者要求采取一個”深入防御”的措施,你大概會遭白眼。如今,越來越多的人聽過”SQL注入”攻擊而且開始關注這些攻擊出現帶來的潛在危險,但是大多數開發者仍然欠缺如何防止SQL注入攻擊的知識,而當問及他們的應用軟件如何防御SQL注入時,他們通常回答:“很簡單,只要使用存儲過程”。我們可以預見的是,使用存儲過程對于你的防御策略來說是非常好的開端,但是僅此一步卻不夠。你需要采用一個深入防御策略。
如果你不熟悉SQL注入攻擊和它們對你的應用軟件的潛在危險,請參考MSDN的文章 “SQLInjection” (http://msdn2.microsoft.com/en-us/library/ms161953.aspx)。
僅僅依賴存儲過程而無法執行一個深入防御的問題在于你真的只指望存儲過程開發者為你提供安全。類似于下面SQLServer代碼用來鑒別一個用戶的存儲過程非常常見:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
Select * FROM Users Where UserID = @UserID AND Password = @Password
RETURN
這個存儲過程看起來非常安全,但是考慮一下這個:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
EXECUTE (‘Select * FROM Users Where UserID = ‘’’ + @UserID + ‘’’
AND Password = ‘’’ + @Password + ‘’’’)
RETURN
通過創建一個特別的SQL聲明,而且把它放到存儲過程代碼的EXECUTE函數中,我們真的可以生成一個存儲過程SQL注入。當你使用控制代碼來寫存儲過程的時候,這個更加容易,它在Microsoft SQL Server 2005中以新的方式支持:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void LoginUser(SqlString userId, SqlString password)
{
using (SqlConnection conn = new SqlConnection(“context connection=true”))
{
SqlCommand selectUserCommand = new SqlCommand();
selectUserCommand.CommandText = “Select * FROM Users Where UserID = ‘”
+ userId.Value + “’ AND Password = ‘” + password.Value + “’”;
selectUserCommand.Connection = conn;
conn.Open();
SqlDataReader reader =
selectUserCommand.ExecuteReader();
SqlContext.Pipe.Send(reader);
reader.Close();
conn.Close();
}
}
甚至就算你是寫存儲過程的那個人,你通常不能確定其他人會在你后面在應用軟件配置以后改變代碼。關于Web應用這尤其可能,而這也是為什么一個需要一個深入防御策略。
明顯地,這個問題的解決是采用一個深入防御策略。你應該繼續使用存儲過程和參數化任何有必要的查詢,但是你也應該設法建立你的深入防御策略來保證傳給這些存儲過程的的參數和查詢的驗證。在我們上面的用戶鑒定例子中,“bobsmith”可能是一個有效的用戶ID,但是“Select * FROM tblCreditCards”或許不是。對于驗證用戶輸入使用你的深入防御策略的一個好的方式是對它采用規范化的表達規則。你能使用在System.Web.UI.WebControls名字空間中的RegularExpressionValidator控制尋找來驗證Web表格數據,而且你可以使用在theSystem.Text.RegularExpressions 名字空間中Regex類尋找來驗證任何類別的文字數據。這里有一個Web表格的例子,在把用戶輸入傳遞給數據庫前對它進行驗證。
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// We allow only alphanumeric input
Regex allowRegex = new Regex(“^[a-zA-Z0-9]*$”);
if ((!allowRegex.IsMatch(textBoxUserId.Text))
|| (!allowRegex.IsMatch(textBoxPassword.Text)))
{
labelErrorMessage.Text =
“Invalid user ID or password.”;
return;
}
else
{
// Call the login stored procedure
…
}
}
}
一個更加徹底的深入防御策略是使用一個允許輸入聯合模式(也被認為是“優選名單”)和拒絕輸入模式(或者稱為”黑名單”)。用戶的輸入必須匹配優選名單模式(或者說至少一個優選名單模式,如果不多于一個的話)而且不和黑名單模式匹配(或者說任何黑名單模式)。如果在你的允許輸入表中允許類似省略號這樣的非字符輸入,在深度防御策略中,你應該明確的使用黑名單模式。
// We allow alpha characters, spaces,
and apostrophes as inputRegex allowRegex = new Regex(@“^[a-zA-Z\s\’]*$”);
// But we disallow common SQL functions
Regex disallowRegex = new Regex(“(union|select|drop|delete)”);
if ((!allowRegex.IsMatch(textBoxLastName.Text)) ||
(disallowRegex.IsMatch(textBoxLastName.Text)))
{
labelErrorMessage.Text = “Invalid name.”;
return;
}
最后,我們必須論及加入損害控制到你的深入防御策略。如果一個黑客真的找到了一個對你的數據庫執行SQL命令的途徑,他可能會造成什么樣的損害呢?如果你的應用程序作為一個管理員用戶連接到數據庫,象Microsoft SQL Server的”sa”用戶,損害甚至會很嚴重。他不僅僅能看表中的數據,他也能增加他自己的新數據或者改變已經存在數據的值。設想一個在線購物站點,所有的商品項目價格標成低于一個美分。他能夠增加新的用戶或者刪除已經存在用戶。他能刪除行,表或者甚至整個數據庫。你能通過應用最少權限原則到你的深入防御策略減輕這個風險:使你的應用軟件作為一個只有足夠執行必需動作的許可,而沒有其它更多的許可。如果你的應用程序只是從一個數據庫中讀數據,去掉數據庫用戶插入,更新和刪除的許可。如果應用程序只需要對一個產品目錄數據庫進行存取(舉例來說),確保用戶不能存取定購歷史數據庫。永遠不要指定”sa”或者任何管理員用戶作為數據庫用戶。
通過采用一個深入防御策略,你可以避免大一個SQL注入攻擊導致你應用程序的多數或者所有的損害。就很多原因包括提高安全來說,使用存儲過程是一個很好的主意,但是一定不要依賴它們提供你所有的安全。總是驗證用戶輸入,而且采用最少權限原則來減小一個成功的攻擊能引起的損害。
關于作者
Bryan Sullivan是SPI Dynamics 一個Web應用軟件安全產品公司的開發經理。Bryan管理DevInspect 和 QAInspect Web 安全產品,這些產品幫助程序員在整個開發和測試過程中維護應用程序的安全。他在Georgia Tech獲得本科學位,而且有11年信息技術產業工作經驗。他也對AVDL有所貢獻,這已經成為應用軟件安全行業的一個標志。
如果你不熟悉SQL注入攻擊和它們對你的應用軟件的潛在危險,請參考MSDN的文章 “SQLInjection” (http://msdn2.microsoft.com/en-us/library/ms161953.aspx)。
僅僅依賴存儲過程而無法執行一個深入防御的問題在于你真的只指望存儲過程開發者為你提供安全。類似于下面SQLServer代碼用來鑒別一個用戶的存儲過程非常常見:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
Select * FROM Users Where UserID = @UserID AND Password = @Password
RETURN
這個存儲過程看起來非常安全,但是考慮一下這個:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
EXECUTE (‘Select * FROM Users Where UserID = ‘’’ + @UserID + ‘’’
AND Password = ‘’’ + @Password + ‘’’’)
RETURN
通過創建一個特別的SQL聲明,而且把它放到存儲過程代碼的EXECUTE函數中,我們真的可以生成一個存儲過程SQL注入。當你使用控制代碼來寫存儲過程的時候,這個更加容易,它在Microsoft SQL Server 2005中以新的方式支持:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void LoginUser(SqlString userId, SqlString password)
{
using (SqlConnection conn = new SqlConnection(“context connection=true”))
{
SqlCommand selectUserCommand = new SqlCommand();
selectUserCommand.CommandText = “Select * FROM Users Where UserID = ‘”
+ userId.Value + “’ AND Password = ‘” + password.Value + “’”;
selectUserCommand.Connection = conn;
conn.Open();
SqlDataReader reader =
selectUserCommand.ExecuteReader();
SqlContext.Pipe.Send(reader);
reader.Close();
conn.Close();
}
}
甚至就算你是寫存儲過程的那個人,你通常不能確定其他人會在你后面在應用軟件配置以后改變代碼。關于Web應用這尤其可能,而這也是為什么一個需要一個深入防御策略。
明顯地,這個問題的解決是采用一個深入防御策略。你應該繼續使用存儲過程和參數化任何有必要的查詢,但是你也應該設法建立你的深入防御策略來保證傳給這些存儲過程的的參數和查詢的驗證。在我們上面的用戶鑒定例子中,“bobsmith”可能是一個有效的用戶ID,但是“Select * FROM tblCreditCards”或許不是。對于驗證用戶輸入使用你的深入防御策略的一個好的方式是對它采用規范化的表達規則。你能使用在System.Web.UI.WebControls名字空間中的RegularExpressionValidator控制尋找來驗證Web表格數據,而且你可以使用在theSystem.Text.RegularExpressions 名字空間中Regex類尋找來驗證任何類別的文字數據。這里有一個Web表格的例子,在把用戶輸入傳遞給數據庫前對它進行驗證。
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// We allow only alphanumeric input
Regex allowRegex = new Regex(“^[a-zA-Z0-9]*$”);
if ((!allowRegex.IsMatch(textBoxUserId.Text))
|| (!allowRegex.IsMatch(textBoxPassword.Text)))
{
labelErrorMessage.Text =
“Invalid user ID or password.”;
return;
}
else
{
// Call the login stored procedure
…
}
}
}
一個更加徹底的深入防御策略是使用一個允許輸入聯合模式(也被認為是“優選名單”)和拒絕輸入模式(或者稱為”黑名單”)。用戶的輸入必須匹配優選名單模式(或者說至少一個優選名單模式,如果不多于一個的話)而且不和黑名單模式匹配(或者說任何黑名單模式)。如果在你的允許輸入表中允許類似省略號這樣的非字符輸入,在深度防御策略中,你應該明確的使用黑名單模式。
// We allow alpha characters, spaces,
and apostrophes as inputRegex allowRegex = new Regex(@“^[a-zA-Z\s\’]*$”);
// But we disallow common SQL functions
Regex disallowRegex = new Regex(“(union|select|drop|delete)”);
if ((!allowRegex.IsMatch(textBoxLastName.Text)) ||
(disallowRegex.IsMatch(textBoxLastName.Text)))
{
labelErrorMessage.Text = “Invalid name.”;
return;
}
最后,我們必須論及加入損害控制到你的深入防御策略。如果一個黑客真的找到了一個對你的數據庫執行SQL命令的途徑,他可能會造成什么樣的損害呢?如果你的應用程序作為一個管理員用戶連接到數據庫,象Microsoft SQL Server的”sa”用戶,損害甚至會很嚴重。他不僅僅能看表中的數據,他也能增加他自己的新數據或者改變已經存在數據的值。設想一個在線購物站點,所有的商品項目價格標成低于一個美分。他能夠增加新的用戶或者刪除已經存在用戶。他能刪除行,表或者甚至整個數據庫。你能通過應用最少權限原則到你的深入防御策略減輕這個風險:使你的應用軟件作為一個只有足夠執行必需動作的許可,而沒有其它更多的許可。如果你的應用程序只是從一個數據庫中讀數據,去掉數據庫用戶插入,更新和刪除的許可。如果應用程序只需要對一個產品目錄數據庫進行存取(舉例來說),確保用戶不能存取定購歷史數據庫。永遠不要指定”sa”或者任何管理員用戶作為數據庫用戶。
通過采用一個深入防御策略,你可以避免大一個SQL注入攻擊導致你應用程序的多數或者所有的損害。就很多原因包括提高安全來說,使用存儲過程是一個很好的主意,但是一定不要依賴它們提供你所有的安全。總是驗證用戶輸入,而且采用最少權限原則來減小一個成功的攻擊能引起的損害。
關于作者
Bryan Sullivan是SPI Dynamics 一個Web應用軟件安全產品公司的開發經理。Bryan管理DevInspect 和 QAInspect Web 安全產品,這些產品幫助程序員在整個開發和測試過程中維護應用程序的安全。他在Georgia Tech獲得本科學位,而且有11年信息技術產業工作經驗。他也對AVDL有所貢獻,這已經成為應用軟件安全行業的一個標志。
9種方法診斷Windows 2003的IPsec問題
[ 2007-03-25 04:12:42 | 作者: sun ]
在你的局域網內實現用IPsec保護網絡通信后,盡管你每一步都是認真按照技術文檔來進行的,你還是不確信自己在網絡上的通信沒有被監聽。怎樣才能確定IPsec已經真正將你的電腦的網絡通信信息加密了呢?
讓我們來看看怎樣確定一切運轉正常,然后-你應當在進程中發現問題-查看檢修IPsec的大圖-相關的認證問題。在進程中,我會指出一些Windows Server 2003中內置的工具。當你確實發現網絡通信信息沒有被加密的時候,可以用這些工具來診斷出IPsec出現的問題。(但是注意,文中我講到的技術并不適用于一些特殊的IPsec設備,比如IPsec卡以及基于IPsec的VPN。)
1.檢查IPsec是否在工作
即使你已經成功地配置了IPsec,它也可能出現很多錯誤。當Windows XP或者Windows Server 2003連不上網的時候,你可以確定是出了什么問題。不幸的是,沒有什么類似的情況可以讓你知道IPsec的狀態。根據IPsec的配置,出問題的時候,你或者會連不上網或者是-這種情況更普遍也更不容易察覺-網絡可以照常使用,但是信息沒有加密。當你確信你的網絡通信信息已經被加密時,卻發現它完全處在不安全的狀態,想象一下,這將多么令人震驚。
檢查IPsec是否在工作的最快方法就是用網絡監視器捕捉到達以及發出計算機的數據包,檢查它們是否有被加密。Windows 2003自帶網絡監視器,你可以打開控制面板的添加/刪除程序來安裝它以及訪問windows組件。安裝網絡監視器之后,選擇捕捉菜單中的“開始”來開始捕捉數據包。然后,執行一些普通的操作,比如瀏覽另一臺電腦上的共享文件夾等,通過類似操作來生成網絡活動并產生數據。最后,選擇捕捉菜單中的“停止”和“查看”。
圖1顯示了在計算機沒有使用IPsec情況下對兩個數據包的捕捉結果。在協議欄你可以看到很多協議。右邊是計算機使用IPsec情況下的捕獲情況
。可以看到,列表中只有一項協議:壓縮安全負載(ESP)。當windows 2003 計算機使用默認IPsec政策時,載數據包捕獲過程中只會出現ESP和互聯網控制信息協議(ICMP)。ICMP會出現是因為默認IPsec策略允許ICMP 通信。因此,如果捕捉數據包的時候看到很多協議,你就有理由斷定IPsec沒有正常起作用。
幾乎所有的IPsec問題都是因為在互聯網密鑰交換(IKE)認證階段出現了認證問題而引起的。當兩臺計算機試圖建立安全連接(SA)的時候,他們通過特定的過程來授予對方身份識別憑證。IKE是協商SA形式的算法。身份識別認證可以是事先共享的密鑰,數字證書或者Kerbero安全認證。Windows 2003默認的IPsec策略使用Kerberos安全認證。絕大多數情況下,檢修IPsec故障就意味著檢修認證的進程。
2.重新啟動IPsec服務
一旦你確定IPsec沒有工作,你應當首先重新啟動IPsec服務。這將完全清零IKE協商的狀態。IPsec在策略有重大更改后不起作用的這種情況下,該措施通常都能夠恢復IPsec的功能。該方案有兩個優點:一是不需要重啟服務器,另一個是用很短的時間就可以實現。通過執行如下Net命令,你可以在Windows 2003計算機上立刻重啟IPsec服務。
net stop policyagent
net start policyagent
現在,再次執行捕捉數據包的程序,或者運行我下文要講到的Netsh命令測試。
3.在時間日志中診斷IKE問題
如果重啟IPsec服務不能解決故障,你可以繼續檢查安全時間日志。網絡登錄日志監聽各個SA的建立和刪除。如果你啟用了監聽登錄事件策略的成功失敗監聽,這些事件就會被記錄在日志中。一切運轉正常的時候,成功代碼顯示為541,542和543。然而,我們討論的是IPsec不工作的時候該怎么辦,所以我們要找失敗代碼,表1中顯示了各個失敗代碼。圖2顯示的是失敗事件547。
SA事件記錄有一個問題是這些事件很快會填滿你的日志。如果你只是要監聽登錄事件而不想讓安全事件填滿IKE條目的話,你可以創建 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Audit\DisableIKE Audits subkey然后把它的值設為1來停止IKE監聽。
4.使用共享密鑰認證
由于它是依靠共享字符串而不是諸如Kerberos或者證書那樣更復雜的方法,共享密鑰認證方法能夠很有效的使IPsec工作起來。當然,如果你已經使用共享密鑰,但還是出現故障的話,你應該核實一下每臺計算機上事先共享的密鑰是否匹配。如果你的事先共享密鑰有錯誤,IPsec是不會工作的。
如果用共享密鑰認證方法可以使IPsec工作,你就會知道該檢查Kerberos或者證書認證機制了。在默認的IPsec策略中,從共享密鑰認證方式切換到Kerberos安全認證方式需要執行以下幾個步驟:
1.關閉所有的IPsec可能應用到的Active Directory(AD)服務
2.點擊“開始”,“運行”,然后輸入gpedit.msc來開始編輯本地策略。
3.進入路徑 計算機配置\系統設置\安全設置\IP安全策略的組策略對象編輯節點。
4.右鍵點擊導致故障的策略然后選擇”屬性“
5.在規則標簽中,選擇過濾列表中“所有IP通信”,并點擊“編輯”。
6.在“編輯規則屬性”對話框中,選擇“認證方法”標簽然后單擊“添加”來添加新的認證方法。
7.選擇“使用該字符串發報”按鈕并輸入一個事先共享的密鑰。然后單擊“確定”。
8.使用“認證方法”標簽中的“上移”按鈕來把事先共享密鑰移到列表頂端。
這些說明是假設你沒怎么定制IPsec策略的。總的來說,你應當總是創建新的策略而不要編輯已經存在的策略。但是,在當前這種情況下,你只是添加一種認證方法,解決故障之后,可以將它降級。變換到共享密鑰認證方法會顯著的簡化認證過程,所以它很有可能使IPsec對你的網絡起作用。
5.確定哪種IPsec策略是有效的
IPsec不工作很有可能是因為網絡上的計算機被指定了互補兼容的策略。例如,一個策略可能試圖使用證書認證,然而其他策略則只接受共享密鑰認證。有兩種方法來確定當前主導的是哪種IPsec策略。第一種方法是用IP安全監聽器。如圖3所示,內置的微軟管理平臺(MMC)IP安全監聽器替代了Windows2000的Ipsecmon.exe功能。它能確定當前計算機上哪種策略是起作用的。
第二種方法是運行Netsh命令 netsh ipsec dynamic show all|more 從命令行得到相同的信息。該命令將所有的IPsec信息放到剪切板上。你可以把該信息粘貼到文本文檔中,如圖4所示。在文本中,可以看到一個策略應用到了本地級別(例如,客戶端:只響應)以及通過AD應用(例如,服務器:安全請求)。一旦你得到了這些信息,你就可以很快發現IPsec不工作的原因是:或者計算機沒有指定策略,或者指定了不兼容的策略。解決策略不兼容問題之后,IPsec可能就正常工作了。
6.檢查Kerberos認證的問題
Kerberos認證依靠AD。如果產生了Kerberos問題,很可能跟計算機帳戶的問題有關。你可能需要重置計算機帳戶的密碼或者重啟計算機帳戶。如果繼續有故障,可能就需要將Kerberos網絡通信與域控制器(DC)上的IPsec隔離。運行命令 netsh ipsec dynamic set config ipsecexempt value=0Win2000容許Kerberos認證通信,但是Windows2003不容許。該Netsh命令強制Windows2003如Win2000一樣操作。
7.檢查證書認證的問題
如果基于證書的認證系統有問題,很大可能是如下三種情況之一:沒有安裝證書,證書過期,或者證書撤銷列表(CRL)不完整。默認的IPsec證書有效期是2年,這對大多數忘了該有效期的組織來說都足夠長了。不像一些證書模板,默認情況下,IPsec證書模板沒有設置成自動注冊模式。
確定證書認證到底是上述哪種問題的最簡便方法就是打開本地計算機的證書存儲器。你也可以使用內置MMC證書工具來請求一個新的IPsec證書。當你創建了內置MMC證書來檢查已安裝的IPsec證書的過期數據時,需要確認你選擇了“計算機帳戶”選項,如圖5所示。如果選擇的是“我的用戶帳戶”或者“服務器帳戶”選項的話,你就無法在定位到該找的IPsec 證書。
從長遠角度來看,最好的解決方法是創建一個支持自動注冊(僅限于Windows2003 企業版)的新的IPsec模板。這樣,IPsec證書就可以自動更新,并且只要你選擇了自動更新選項你就不需要記住IPsec證書有效期是2年了。
證書正在使用時,IPsec檢查CRL來確定證書是否已被廢除。IPsec要花一定的時間來做這個檢查,并且很有可能在得到結果之前,系統就被關閉了。可以運行 netsh ipsec dynamic set config strongcrlcheck 0 來取消CRL檢查。
8.檢查是否所有人都使用客戶端策略
IPsec的新的管理員有時候對網絡上的所有計算機都應用客戶端(只響應)策略,然后納悶為什么沒有加密任何信息。對開始生效的IPsec來說,搭檔中的一個需要請求使用IPsec的策略。如果所有的主機都指定的是客戶端(只響應)策略,那么沒有主機會請求使用IPsec。要解決該問題,可以在計算機上激活各種服務器策略中的一個,然后運行GPU更新。
9.檢查IKE日志
如果所有的前述措施都沒有解決IKE問題,你就不得不按照更詳細的步驟來決定方案。這種情況下,你需要有互聯網安全連接和密鑰管理協議RFC 2408和IKE RFC 2409(ISAKMP)方面的更進一步的知識。運行 netsh ipsec dynamic set config ikelogging 1來開始追蹤IKE的協商。可以將ikelogging的值增加至7(記錄所有可能的數據)來增加記錄下來的信息量。IKE跟蹤日志位于\%systemroot%\Debug\Oakley.log,可以用文本編輯器來查看。需要注意的是,記錄文檔的內容很密集,剛接觸IPsec的人很可能很快就受不了了。
慎用自定義
Windows2003帶的IPsec策略是可以直接使用的。只有你自定義它們使用基于證書或者基于共享密鑰的認證系統的時候,才會產生問題。如果需要修改IPsec的認證方法,你應該創建新策略而不是對已存在的策略進行修改。只要遵從這個建議,在調查各種突然出現的問題時,都能夠迅速切換到起作用的配置上。
讓我們來看看怎樣確定一切運轉正常,然后-你應當在進程中發現問題-查看檢修IPsec的大圖-相關的認證問題。在進程中,我會指出一些Windows Server 2003中內置的工具。當你確實發現網絡通信信息沒有被加密的時候,可以用這些工具來診斷出IPsec出現的問題。(但是注意,文中我講到的技術并不適用于一些特殊的IPsec設備,比如IPsec卡以及基于IPsec的VPN。)
1.檢查IPsec是否在工作
即使你已經成功地配置了IPsec,它也可能出現很多錯誤。當Windows XP或者Windows Server 2003連不上網的時候,你可以確定是出了什么問題。不幸的是,沒有什么類似的情況可以讓你知道IPsec的狀態。根據IPsec的配置,出問題的時候,你或者會連不上網或者是-這種情況更普遍也更不容易察覺-網絡可以照常使用,但是信息沒有加密。當你確信你的網絡通信信息已經被加密時,卻發現它完全處在不安全的狀態,想象一下,這將多么令人震驚。
檢查IPsec是否在工作的最快方法就是用網絡監視器捕捉到達以及發出計算機的數據包,檢查它們是否有被加密。Windows 2003自帶網絡監視器,你可以打開控制面板的添加/刪除程序來安裝它以及訪問windows組件。安裝網絡監視器之后,選擇捕捉菜單中的“開始”來開始捕捉數據包。然后,執行一些普通的操作,比如瀏覽另一臺電腦上的共享文件夾等,通過類似操作來生成網絡活動并產生數據。最后,選擇捕捉菜單中的“停止”和“查看”。
圖1顯示了在計算機沒有使用IPsec情況下對兩個數據包的捕捉結果。在協議欄你可以看到很多協議。右邊是計算機使用IPsec情況下的捕獲情況
。可以看到,列表中只有一項協議:壓縮安全負載(ESP)。當windows 2003 計算機使用默認IPsec政策時,載數據包捕獲過程中只會出現ESP和互聯網控制信息協議(ICMP)。ICMP會出現是因為默認IPsec策略允許ICMP 通信。因此,如果捕捉數據包的時候看到很多協議,你就有理由斷定IPsec沒有正常起作用。
幾乎所有的IPsec問題都是因為在互聯網密鑰交換(IKE)認證階段出現了認證問題而引起的。當兩臺計算機試圖建立安全連接(SA)的時候,他們通過特定的過程來授予對方身份識別憑證。IKE是協商SA形式的算法。身份識別認證可以是事先共享的密鑰,數字證書或者Kerbero安全認證。Windows 2003默認的IPsec策略使用Kerberos安全認證。絕大多數情況下,檢修IPsec故障就意味著檢修認證的進程。
2.重新啟動IPsec服務
一旦你確定IPsec沒有工作,你應當首先重新啟動IPsec服務。這將完全清零IKE協商的狀態。IPsec在策略有重大更改后不起作用的這種情況下,該措施通常都能夠恢復IPsec的功能。該方案有兩個優點:一是不需要重啟服務器,另一個是用很短的時間就可以實現。通過執行如下Net命令,你可以在Windows 2003計算機上立刻重啟IPsec服務。
net stop policyagent
net start policyagent
現在,再次執行捕捉數據包的程序,或者運行我下文要講到的Netsh命令測試。
3.在時間日志中診斷IKE問題
如果重啟IPsec服務不能解決故障,你可以繼續檢查安全時間日志。網絡登錄日志監聽各個SA的建立和刪除。如果你啟用了監聽登錄事件策略的成功失敗監聽,這些事件就會被記錄在日志中。一切運轉正常的時候,成功代碼顯示為541,542和543。然而,我們討論的是IPsec不工作的時候該怎么辦,所以我們要找失敗代碼,表1中顯示了各個失敗代碼。圖2顯示的是失敗事件547。
SA事件記錄有一個問題是這些事件很快會填滿你的日志。如果你只是要監聽登錄事件而不想讓安全事件填滿IKE條目的話,你可以創建 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Audit\DisableIKE Audits subkey然后把它的值設為1來停止IKE監聽。
4.使用共享密鑰認證
由于它是依靠共享字符串而不是諸如Kerberos或者證書那樣更復雜的方法,共享密鑰認證方法能夠很有效的使IPsec工作起來。當然,如果你已經使用共享密鑰,但還是出現故障的話,你應該核實一下每臺計算機上事先共享的密鑰是否匹配。如果你的事先共享密鑰有錯誤,IPsec是不會工作的。
如果用共享密鑰認證方法可以使IPsec工作,你就會知道該檢查Kerberos或者證書認證機制了。在默認的IPsec策略中,從共享密鑰認證方式切換到Kerberos安全認證方式需要執行以下幾個步驟:
1.關閉所有的IPsec可能應用到的Active Directory(AD)服務
2.點擊“開始”,“運行”,然后輸入gpedit.msc來開始編輯本地策略。
3.進入路徑 計算機配置\系統設置\安全設置\IP安全策略的組策略對象編輯節點。
4.右鍵點擊導致故障的策略然后選擇”屬性“
5.在規則標簽中,選擇過濾列表中“所有IP通信”,并點擊“編輯”。
6.在“編輯規則屬性”對話框中,選擇“認證方法”標簽然后單擊“添加”來添加新的認證方法。
7.選擇“使用該字符串發報”按鈕并輸入一個事先共享的密鑰。然后單擊“確定”。
8.使用“認證方法”標簽中的“上移”按鈕來把事先共享密鑰移到列表頂端。
這些說明是假設你沒怎么定制IPsec策略的。總的來說,你應當總是創建新的策略而不要編輯已經存在的策略。但是,在當前這種情況下,你只是添加一種認證方法,解決故障之后,可以將它降級。變換到共享密鑰認證方法會顯著的簡化認證過程,所以它很有可能使IPsec對你的網絡起作用。
5.確定哪種IPsec策略是有效的
IPsec不工作很有可能是因為網絡上的計算機被指定了互補兼容的策略。例如,一個策略可能試圖使用證書認證,然而其他策略則只接受共享密鑰認證。有兩種方法來確定當前主導的是哪種IPsec策略。第一種方法是用IP安全監聽器。如圖3所示,內置的微軟管理平臺(MMC)IP安全監聽器替代了Windows2000的Ipsecmon.exe功能。它能確定當前計算機上哪種策略是起作用的。
第二種方法是運行Netsh命令 netsh ipsec dynamic show all|more 從命令行得到相同的信息。該命令將所有的IPsec信息放到剪切板上。你可以把該信息粘貼到文本文檔中,如圖4所示。在文本中,可以看到一個策略應用到了本地級別(例如,客戶端:只響應)以及通過AD應用(例如,服務器:安全請求)。一旦你得到了這些信息,你就可以很快發現IPsec不工作的原因是:或者計算機沒有指定策略,或者指定了不兼容的策略。解決策略不兼容問題之后,IPsec可能就正常工作了。
6.檢查Kerberos認證的問題
Kerberos認證依靠AD。如果產生了Kerberos問題,很可能跟計算機帳戶的問題有關。你可能需要重置計算機帳戶的密碼或者重啟計算機帳戶。如果繼續有故障,可能就需要將Kerberos網絡通信與域控制器(DC)上的IPsec隔離。運行命令 netsh ipsec dynamic set config ipsecexempt value=0Win2000容許Kerberos認證通信,但是Windows2003不容許。該Netsh命令強制Windows2003如Win2000一樣操作。
7.檢查證書認證的問題
如果基于證書的認證系統有問題,很大可能是如下三種情況之一:沒有安裝證書,證書過期,或者證書撤銷列表(CRL)不完整。默認的IPsec證書有效期是2年,這對大多數忘了該有效期的組織來說都足夠長了。不像一些證書模板,默認情況下,IPsec證書模板沒有設置成自動注冊模式。
確定證書認證到底是上述哪種問題的最簡便方法就是打開本地計算機的證書存儲器。你也可以使用內置MMC證書工具來請求一個新的IPsec證書。當你創建了內置MMC證書來檢查已安裝的IPsec證書的過期數據時,需要確認你選擇了“計算機帳戶”選項,如圖5所示。如果選擇的是“我的用戶帳戶”或者“服務器帳戶”選項的話,你就無法在定位到該找的IPsec 證書。
從長遠角度來看,最好的解決方法是創建一個支持自動注冊(僅限于Windows2003 企業版)的新的IPsec模板。這樣,IPsec證書就可以自動更新,并且只要你選擇了自動更新選項你就不需要記住IPsec證書有效期是2年了。
證書正在使用時,IPsec檢查CRL來確定證書是否已被廢除。IPsec要花一定的時間來做這個檢查,并且很有可能在得到結果之前,系統就被關閉了。可以運行 netsh ipsec dynamic set config strongcrlcheck 0 來取消CRL檢查。
8.檢查是否所有人都使用客戶端策略
IPsec的新的管理員有時候對網絡上的所有計算機都應用客戶端(只響應)策略,然后納悶為什么沒有加密任何信息。對開始生效的IPsec來說,搭檔中的一個需要請求使用IPsec的策略。如果所有的主機都指定的是客戶端(只響應)策略,那么沒有主機會請求使用IPsec。要解決該問題,可以在計算機上激活各種服務器策略中的一個,然后運行GPU更新。
9.檢查IKE日志
如果所有的前述措施都沒有解決IKE問題,你就不得不按照更詳細的步驟來決定方案。這種情況下,你需要有互聯網安全連接和密鑰管理協議RFC 2408和IKE RFC 2409(ISAKMP)方面的更進一步的知識。運行 netsh ipsec dynamic set config ikelogging 1來開始追蹤IKE的協商。可以將ikelogging的值增加至7(記錄所有可能的數據)來增加記錄下來的信息量。IKE跟蹤日志位于\%systemroot%\Debug\Oakley.log,可以用文本編輯器來查看。需要注意的是,記錄文檔的內容很密集,剛接觸IPsec的人很可能很快就受不了了。
慎用自定義
Windows2003帶的IPsec策略是可以直接使用的。只有你自定義它們使用基于證書或者基于共享密鑰的認證系統的時候,才會產生問題。如果需要修改IPsec的認證方法,你應該創建新策略而不是對已存在的策略進行修改。只要遵從這個建議,在調查各種突然出現的問題時,都能夠迅速切換到起作用的配置上。
怎么抵抗DDOS攻擊
[ 2007-03-25 04:12:21 | 作者: sun ]
一、為何要DDOS?
隨著Internet互聯網絡帶寬的增加和多種DDOS黑客工具的不斷發布,DDOS拒絕服務攻擊的實施越來越容易,DDOS攻擊事件正在成上升趨勢。出于商業競爭、打擊報復和網絡敲詐等多種因素,導致很多IDC托管機房、商業站點、游戲服務器、聊天網絡等網絡服務商長期以來一直被DDOS攻擊所困擾,隨之而來的是客戶投訴、同虛擬主機用戶受牽連、法律糾紛、商業損失等一系列問題,因此,解決DDOS攻擊問題成為網絡服務商必須考慮的頭等大事。
二、什么是DDOS?
DDOS是英文Distributed Denial of Service的縮寫,意即“分布式拒絕服務”,那么什么又是拒絕服務(Denial of Service)呢?可以這么理解,凡是能導致合法用戶不能夠訪問正常網絡服務的行為都算是拒絕服務攻擊。也就是說拒絕服務攻擊的目的非常明確,就是要阻止合法用戶對正常網絡資源的訪問,從而達成攻擊者不可告人的目的。雖然同樣是拒絕服務攻擊,但是DDOS和DOS還是有所不同,DDOS的攻擊策略側重于通過很多“僵尸主機”(被攻擊者入侵過或可間接利用的主機)向受害主機發送大量看似合法的網絡包,從而造成網絡阻塞或服務器資源耗盡而導致拒絕服務,分布式拒絕服務攻擊一旦被實施,攻擊網絡包就會猶如洪水般涌向受害主機,從而把合法用戶的網絡包淹沒,導致合法用戶無法正常訪問服務器的網絡資源,因此,拒絕服務攻擊又被稱之為“洪水式攻擊”,常見的DDOS攻擊手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而DOS則側重于通過對主機特定漏洞的利用攻擊導致網絡棧失效、系統崩潰、主機死機而無法提供正常的網絡服務功能,從而造成拒絕服務,常見的DOS攻擊手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等。就這兩種拒絕服務攻擊而言,危害較大的主要是DDOS攻擊,原因是很難防范,至于DOS攻擊,通過給主機服務器打補丁或安裝防火墻軟件就可以很好地防范,后文會詳細介紹怎么對付DDOS攻擊。
三、被DDOS了嗎?
DDOS的表現形式主要有兩種,一種為流量攻擊,主要是針對網絡帶寬的攻擊,即大量攻擊包導致網絡帶寬被阻塞,合法網絡包被虛假的攻擊包淹沒而無法到達主機;另一種為資源耗盡攻擊,主要是針對服務器主機的攻擊,即通過大量攻擊包導致主機的內存被耗盡或CPU被內核及應用程序占完而造成無法提供網絡服務。
如何判斷網站是否遭受了流量攻擊呢?可通過Ping命令來測試,若發現Ping超時或丟包嚴重(假定平時是正常的),則可能遭受了流量攻擊,此時若發現和你的主機接在同一交換機上的服務器也訪問不了了,基本可以確定是遭受了流量攻擊。當然,這樣測試的前提是你到服務器主機之間的ICMP協議沒有被路由器和防火墻等設備屏蔽,否則可采取Telnet主機服務器的網絡服務端口來測試,效果是一樣的。不過有一點可以肯定,假如平時Ping你的主機服務器和接在同一交換機上的主機服務器都是正常的,突然都Ping不通了或者是嚴重丟包,那么假如可以排除網絡故障因素的話則肯定是遭受了流量攻擊,再一個流量攻擊的典型現象是,一旦遭受流量攻擊,會發現用遠程終端連接網站服務器會失敗。
相對于流量攻擊而言,資源耗盡攻擊要容易判斷一些,假如平時Ping網站主機和訪問網站都是正常的,發現突然網站訪問非常緩慢或無法訪問了,而Ping還可以Ping通,則很可能遭受了資源耗盡攻擊,此時若在服務器上用Netstat -na命令觀察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等狀態存在,而ESTABLISHED很少,則可判定肯定是遭受了資源耗盡攻擊。還有一種屬于資源耗盡攻擊的現象是,Ping自己的網站主機Ping不通或者是丟包嚴重,而Ping與自己的主機在同一交換機上的服務器則正常,造成這種原因是網站主機遭受攻擊后導致系統內核或某些應用程序CPU利用率達到100%無法回應Ping命令,其實帶寬還是有的,否則就Ping不通接在同一交換機上的主機了。
當前主要有三種流行的DDOS攻擊:
1、SYN/ACK Flood攻擊:這種攻擊方法是經典最有效的DDOS方法,可通殺各種系統的網絡服務,主要是通過向受害主機發送大量偽造源IP和源端口的SYN或ACK包,導致主機的緩存資源被耗盡或忙于發送回應包而造成拒絕服務,由于源都是偽造的故追蹤起來比較困難,缺點是實施起來有一定難度,需要高帶寬的僵尸主機支持。少量的這種攻擊會導致主機服務器無法訪問,但卻可以Ping的通,在服務器上用Netstat -na命令會觀察到存在大量的SYN_RECEIVED狀態,大量的這種攻擊會導致Ping失敗、TCP/IP棧失效,并會出現系統凝固現象,即不響應鍵盤和鼠標。普通防火墻大多無法抵御此種攻擊。
2、TCP全連接攻擊:這種攻擊是為了繞過常規防火墻的檢查而設計的,一般情況下,常規防火墻大多具備過濾TearDrop、Land等DOS攻擊的能力,但對于正常的TCP連接是放過的,殊不知很多網絡服務程序(如:IIS、Apache等Web服務器)能接受的TCP連接數是有限的,一旦有大量的TCP連接,即便是正常的,也會導致網站訪問非常緩慢甚至無法訪問,TCP全連接攻擊就是通過許多僵尸主機不斷地與受害服務器建立大量的TCP連接,直到服務器的內存等資源被耗盡而被拖跨,從而造成拒絕服務,這種攻擊的特點是可繞過一般防火墻的防護而達到攻擊目的,缺點是需要找很多僵尸主機,并且由于僵尸主機的IP是暴露的,因此容易被追蹤。
3、刷Script腳本攻擊:這種攻擊主要是針對存在ASP、JSP、PHP、CGI等腳本程序,并調用MSSQLServer、MySQLServer、Oracle等數據庫的網站系統而設計的,特征是和服務器建立正常的TCP連接,并不斷的向腳本程序提交查詢、列表等大量耗費數據庫資源的調用,典型的以小博大的攻擊方法。一般來說,提交一個GET或POST指令對客戶端的耗費和帶寬的占用是幾乎可以忽略的,而服務器為處理此請求卻可能要從上萬條記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的數據庫服務器很少能支持數百個查詢指令同時執行,而這對于客戶端來說卻是輕而易舉的,因此攻擊者只需通過Proxy代理向主機服務器大量遞交查詢指令,只需數分鐘就會把服務器資源消耗掉而導致拒絕服務,常見的現象就是網站慢如蝸牛、ASP程序失效、PHP連接數據庫失敗、數據庫主程序占用CPU偏高。這種攻擊的特點是可以完全繞過普通的防火墻防護,輕松找一些Proxy代理就可實施攻擊,缺點是對付只有靜態頁面的網站效果會大打折扣,并且有些Proxy會暴露攻擊者的IP地址。
四、怎么抵御DDOS?
對付DDOS是一個系統工程,想僅僅依靠某種系統或產品防住DDOS是不現實的,可以肯定的是,完全杜絕DDOS目前是不可能的,但通過適當的措施抵御90%的DDOS攻擊是可以做到的,基于攻擊和防御都有成本開銷的緣故,若通過適當的辦法增強了抵御DDOS的能力,也就意味著加大了攻擊者的攻擊成本,那么絕大多數攻擊者將無法繼續下去而放棄,也就相當于成功的抵御了DDOS攻擊。以下幾點是防御DDOS攻擊幾點:
1、采用高性能的網絡設備
首先要保證網絡設備不能成為瓶頸,因此選擇路由器、交換機、硬件防火墻等設備的時候要盡量選用知名度高、口碑好的產品。再就是假如和網絡提供商有特殊關系或協議的話就更好了,當大量攻擊發生的時候請他們在網絡接點處做一下流量限制來對抗某些種類的DDOS攻擊是非常有效的。
2、盡量避免NAT的使用
無論是路由器還是硬件防護墻設備要盡量避免采用網絡地址轉換NAT的使用,因為采用此技術會較大降低網絡通信能力,其實原因很簡單,因為NAT需要對地址來回轉換,轉換過程中需要對網絡包的校驗和進行計算,因此浪費了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。
3、充足的網絡帶寬保證
網絡帶寬直接決定了能抗受攻擊的能力,假若僅僅有10M帶寬的話,無論采取什么措施都很難對抗現在的SYNFlood攻擊,當前至少要選擇100M的共享帶寬,最好的當然是掛在1000M的主干上了。但需要注意的是,主機上的網卡是1000M的并不意味著它的網絡帶寬就是千兆的,若把它接在100M的交換機上,它的實際帶寬不會超過100M,再就是接在100M的帶寬上也不等于就有了百兆的帶寬,因為網絡服務商很可能會在交換機上限制實際帶寬為10M,這點一定要搞清楚。
4、升級主機服務器硬件
在有網絡帶寬保證的前提下,請盡量提升硬件配置,要有效對抗每秒10萬個SYN攻擊包,服務器的配置至少應該為:P4 2.4G/DDR512M/SCSI-HD,起關鍵作用的主要是CPU和內存,若有志強雙CPU的話就用它吧,內存一定要選擇DDR的高速內存,硬盤要盡量選擇SCSI的,別只貪IDE價格不貴量還足的便宜,否則會付出高昂的性能代價,再就是網卡一定要選用3COM或Intel等名牌的,若是Realtek的還是用在自己的PC上吧。
5、把網站做成靜態頁面
大量事實證明,把網站盡可能做成靜態頁面,不僅能大大提高抗攻擊能力,而且還給黑客入侵帶來不少麻煩,至少到現在為止關于HTML的溢出還沒出現,看看吧!新浪、搜狐、網易等門戶網站主要都是靜態頁面,若你非需要動態腳本調用,那就把它弄到另外一臺單獨主機去,免的遭受攻擊時連累主服務器,當然,適當放一些不做數據庫調用腳本還是可以的,此外,最好在需要調用數據庫的腳本中拒絕使用代理的訪問,因為經驗表明使用代理訪問你網站的80%屬于惡意行為。
6、增強操作系統的TCP/IP棧
Win2000和Win2003作為服務器操作系統,本身就具備一定的抵抗DDOS攻擊的能力,只是默認狀態下沒有開啟而已,若開啟的話可抵擋約10000個SYN攻擊包,若沒有開啟則僅能抵御數百個,具體怎么開啟,自己去看微軟的文章吧!《強化 TCP/IP 堆棧安全》。
也許有的人會問,那我用的是Linux和FreeBSD怎么辦?很簡單,按照這篇文章去做吧!《SYN Cookies》。
7、安裝專業抗DDOS防火墻
8、其他防御措施
以上幾條對抗DDOS建議,適合絕大多數擁有自己主機的用戶,但假如采取以上措施后仍然不能解決DDOS問題,就有些麻煩了,可能需要更多投資,增加服務器數量并采用DNS輪巡或負載均衡技術,甚至需要購買七層交換機設備,從而使得抗DDOS攻擊能力成倍提高,只要投資足夠深入。

