這幾天由於乙個安全度較高的專案需要啟動 所以我也就把大部分精力放到了編碼安全上面。也了解了一些php編碼方面的安全漏洞。比如xss攻擊和sql注入等。由於本人資歷尚淺,不能嘗試編寫出攻擊類**,本篇文章只記錄本人近幾天通過學習php安全編碼方面的一些知識來防止和降低被攻擊的危險。
1.關於xss攻擊
首先我們先看一段php**:
目的是提交到當前頁面。當我們輸入http://localhost/xss/index.php的時候。頁面正常的提交了。這就是我們想要的結果。
但是http://localhost/xss/index.php?a=1的時候瀏覽器也正常提交了。這樣可就不是我們想要的了。當我們在瀏覽器中輸入http://localhost/xss/index.php/%3e%22%3e%3cscript%3ealert%28%27xss%27%29%3c/script%3e
看看會發生什麼事吧。沒錯瀏覽器彈出了xss的提示框。這就表明**存在被xss攻擊的危險了。
那麼我們怎樣解決這一問題呢 ,下面請看如下**:
現在再次提交上面的惡意**,這樣我們是不是就避免了被攻擊了呢。
htmlspecialchars 函式把一些預定義的字元轉換為 html 實體。
2.關於sql注入
下面先看乙個例子(這個例子只是起到說明作用,無實際效果):
$name=$_get['username'];mysql_query(「select*from users where name=』』」);
當我們在瀏覽器輸入http://localhost/xss/index.php?username=confusing,的時候,正常進入了sql的select語句。這是我們想要的結果。
可是當我們在瀏覽器中輸入:http://localhost/xss/index.php?username=confusing';delete from users;
這條sql語句就變成了:
select*fromuserswherename='confusing';deletefromusers;
多麼可怕的事情。這條語句把users表刪除掉了。
那麼我們怎樣防止這樣的事情發生呢?
1).驗證輸入
看下面的**片段:
if (get_magic_quotes_gpc()) 』」);
這樣是不是更安全了一些呢。
還有一些比較好的php函式庫比如我上篇提到的ctype。都是一些驗證很好的驗證資料的工具。只要我們不耐其煩的認真檢驗使用者輸入的資料就能最大限度的減少被攻擊的機率。
今天只寫這麼多,本人也在學習中。如發現更多會在本處直接更新。
Http協議 3 HTTP實體和編碼
http實體實現目標 可以被正確識別 通過content type和content launage 可以被正確解包 通過content lenght首部和content encoding首部 是最新的 通過實體驗證碼和快取過期控制 符合使用者需要 基於accept系列的內容協商首部 在網路上可以快速...
python3自學筆記3 字串和編碼
摘錄自 廖雪峰python3.5教程 內容 字串和編碼 目錄 一 字元編碼的發展 二 python的字串 正文 一 字元編碼的發展 美國人在發明計算機編碼時只將大小寫英文本母 數字和一些符號共127個字母編碼到計算機中,稱為ascaii編碼。最早的計算機以8個位元為乙個位元組,所以乙個位元組能表示最...
python3中的url編碼和解碼
在用python進行web開發的時候,當url中含有中文,那麼傳遞到後台伺服器的會是編碼過的url,我們可以用python3把編碼後的文字轉化成我們可以識別的內容。如下操作 import urllib test str 哈哈哈 print test str new urllib.parse.quot...