免费无遮挡毛片中文字幕视频-免费无遮挡无码永久在线观看视频-免费香蕉成视频人网站-免费亚洲三级中文-免费亚洲一级无码片-免费一级成人免费观看

網站開發語言如何保護(php腳本保護)

3.1?腳本概念介紹
  在程序編寫時優秀的程序員都會知道,用有意義的變量名,文件名有助于增加程序的可讀性,具有良好的程序風格。這個非常好但在腳本語言不太適合,為了不讓惡意用戶猜到你的變量或數據庫名等信息,必須改掉這些信息。動態的網頁在服務器端執行后返回給客戶的是執行后的代碼,這可以保護服務器端的很多不想叫或不能叫瀏覽者知道的信息。安全是相對的,每天都在有新的安全漏洞被發現,如果惡意的用戶在你之前知道了一個可以看你的腳本源代碼的漏洞或這個漏洞一時間無法修補怎么辦?


3.2?腳本主意要點
  建議用一些比較怪異的名字命名,刪掉腳本中的注釋。如果還需要保持程序的可讀性的話,可以建立一個映射,你可以寫個具有良好風格的腳本程序,然后再做一個變量名映射建立一個具有較安全命名方法的腳本,去掉這個腳本中的注視和所有能去掉的信息,修改時作個同步就可以了我們可以在程序的使用前對程序進行加密,以保護我們自己的程序再萬一的情況下部被泄漏。
3.3?腳本保護方法

  我看到過很多的對腳本的加密方法,都很不錯,有的是專門的加密軟件,有的是通過一些技巧加上利用語言的特性進行加密的,例如隨機生成一個密匙,把密匙放在"不可見的"地方,通過一些算法對腳本進行加解密,就是由于某些系統漏洞導致你的腳本源代碼泄漏,也無濟于事。

4?. 腳本實例說明
  下面這個例子是在網上經常被提到的,這是個非常經典的例子,所以在這里通過這個實例告訴大家可能存在的危險。
問題描述:
  大部分網站把密碼放到數據庫中,在登陸驗證中用以下sql,(以asp為例)?
sql="select?*?from?user?where?username=’"&username&"’and?pass=’"&?pass?&’"?
  此時,您只要根據sql構造一個特殊的用戶名和密碼,如:ben’?or?’1’=’1?
就可以進入本來你沒有特權的頁面。再來看看上面那個語句吧:?
sql="select?*?from?user?where?username=’"&username&"’and?pass=’"&?pass&’"?
  此時,您只要根據sql構造一個特殊的用戶名和密碼,如:ben’?or?’1’=’1?這樣,程序將會變成這樣:?sql="select*from?username?where
username="&ben’or’1’=1&"and?pass="&pass&"?or?是一個邏輯運算符,作用是在判斷兩個條件的時候,只要其中一個條件成立,那么等式
將會成立.而在語言中,是以1來代表真的(成立).那么在這行語句中,原語句的"and"驗證將不再繼續,而因為"1=1"和"or"令語句返回為真值.。

  另外我們也可以構造以下的用戶名:?
username=’aa’?or?username$#@60;$#@62;’aa’
pass=’aa’?or?pass$#@60;$#@62;’aa’
  相應的在瀏覽器端的用戶名框內寫入:aa’?or?username$#@60;$#@62;’aa?口令框內寫入:aa’?or?pass$#@60;$#@62;’aa,注意這兩個字符串兩頭是沒有’的。這樣就可以成功的騙過系統而進入。

  具體實施是這樣的,首先我會到注冊的地方去收集信息,了解盡可能多的信息,例如目標數據庫中都有用戶的什么樣的信息,隨便的填寫信息然后提交,當你要注冊的用戶名被注冊的是有系統會提示你已被注冊,有的網站做的更好的,就是他們專門給你設置的檢測是否有已經被注冊的功能,通過這樣就會非常容易的找到目標--那個提示已被注冊的用戶,讓后你在這個注冊頁里填寫一些特殊的字符,如’,/,,等字符看系統如何提示,以證明程序員是否注意到了應該過濾字符或懂得是否應該過濾那些字符,在這頁進行嘗試是因為有的網站在登錄的時候他會記錄你的ip地址,當然你也可以找一個比你直接登錄要快的代理服務器來做跳板。后面你要做的就是察看登錄頁的html源代碼,看看是否有在客戶端的字符過濾,看看這個程序員是用什么風格來編寫程序,盡可能多的了解程序編寫風格,這對你以后的某些判斷有好處。如果有在客戶端的過濾也不怕,你要搞清是什么樣的過濾,能不能對攻擊造成威脅,不要一看有過濾就害怕,可以嘗試著用別的方法繞,就是使用自己精心打造的獨立腳本,進行攻擊。然后你要看看form的action中的url是否可以直接提交,在瀏覽器地址欄里直接提交,看看返回什么,是否有來路檢測。還有很多細小的地方,你也應該可以注意到,例如那些地方程序員的整體的編寫風格是什么,變量名定義的風格是什么等等,這個會幫我們"猜"到很多東西。還有別的其他什么,我也記不太清楚了,臨場發揮吧。通過這些了解我們有如下幾種可能:

1.那個程序員非常善良相信全世界都是好人,什么都沒做,根本沒有任何檢測機制,我們直接用ername=’aa’?or?username$#@60;$#@62;’aa’,?pass=’aa’?or?pass$#@60;$#@62;’aa’就可以搞定,現在這么善良的人少啦,可是你要是有耐心,找到這種人還是不難的。

2.這個程序員可能聽別人提起過一些安全問題,畢竟現在這個那里都有人說,很多書中都有提及,但是做得不夠好,他只進行了簡單的輸入過濾。
  過濾有兩種方式,一種是在客戶端的過濾,一種是在服務器端的過濾。現在很多的程序員考慮到再服務器端進行過濾可能給服務器造成更多的負荷,會把檢測過程放在客戶端。如果他在服務器端沒做任何事情,那么還是可以對其進行攻擊的,我可以將這個登錄頁的源代碼COPY下來,然后自己建立一個文件把這些代碼PASTE進去,再對這個文件進行進一步的深加工,去掉原來頁的過濾機制,或者直接將攻擊代碼寫到這個文件中去,然后將form中的action中的地址改成絕對地址,也就是將文件名改成"http://www.epweike.com/targer.php"這樣,然后就可以提交啦。但是如果服務器端加上了"來路檢測",你就白玩了。如果這樣還是不行,我再換一種方法,在瀏覽器的地址欄里用?來輸入參數,就好像
"http://www.epweike.com/targer.php?username=’aa’?or?username$#@60;$#@62;’aa’&pass=’aa’?or?pass$#@60;$#@62;’aa’?"然后敲回車吧,其實應該先嘗試這種方法因為這用方法更簡單,防護起來也很簡單,這種提交方式不是post?而是get?,只要服務器端程序檢測你的提交方法,就可以kill掉這個陰謀。如果單純的只檢測了"來路",還是不太安全的,可以先正確的提交一次,在提交過程中馬上停止,就是保存這個環境,然后再構造請求。

  • Tags:
Image
Image

等保設備套餐,特價限時優惠

Image
Image

? Copyright 2005~2025 珠海超凡科技有限公司 All rights reserved 粵ICP備11027936號 粵公網安備:44040202000848號