PHP面試之mysql內置函數,xss漏洞,sql注入

面試被問到:

1. MySql有哪些常用聚合函數:

count()、sum()、max()、min()、avg()、group_concat()

mysql還有常用的函數:

(1)數值函數:

Abs()=》(絕對值abs(-10.9) = 10)

Pi() //獲得圓周率

Rand() //隨機數

...

(2)時間日期函數:

Now()、Date()、Time()...

(3)字符串函數:

TRIM(string) //去除前後兩端的空格

LENGTH(string) //string長度、字節

...

(4)流程函數

(5)其他常用函數:

md5()、Default()...

2. SQL注入攻擊的解決辦法:

我自己的理解是,sql注入是指通過一定的數據庫語法手段結合所用代碼特性生成特殊意義的sql語句並運行,稱之爲sql注入,

解決辦法一般是:

(1)對數據庫的輸入進行過濾處理(即不要相信任何用戶輸入的數據);

(2)針對java,使用 PreparedStatement

參考鏈接:https://blog.csdn.net/czh500/article/details/88202971,https://www.cnblogs.com/zhidongjian/p/10413635.html

(3)針對php,可以更改php.ini的配置信息( addslashesmysql_real_escape_stringmysql_escape_string),可以利用函數對get或者post的數據做單獨處理過濾,普通的htmlspecialchars是不行的,它只針對 把預定義的字符 "<" (小於)和 ">" (大於)轉換爲 HTML 實體 ,並不能完全阻止sql注入攻擊,PDO的prepare能解決大部分的攻擊,但是也不能百分百的防止注入,當然這是我自己的理解

參考鏈接:https://www.cnblogs.com/liliuguang/p/10429163.html,https://www.v2ex.com/amp/t/362625

3.xss跨站腳本攻擊:

常見的 XSS 攻擊有三種:反射型XSS攻擊、DOM-based 型XXS攻擊以及存儲型XSS攻擊。

1.反射型XSS攻擊反射型 XSS 一般是攻擊者通過特定手法(如電子郵件),誘使用戶去訪問一個包含惡意代碼的 URL,當受害者點擊這些專門設計的鏈接的時候,惡意代碼會直接在受害者主機上的瀏覽器執行。反射型XSS通常出現在網站的搜索欄、用戶登錄口等地方,常用來竊取客戶端 Cookies 或進行釣魚欺騙。

2.存儲型XSS攻擊也叫持久型XSS,主要將XSS代碼提交存儲在服務器端(數據庫,內存,文件系統等),下次請求目標頁面時不用再提交XSS代碼。當目標用戶訪問該頁面獲取數據時,XSS代碼會從服務器解析之後加載出來,返回到瀏覽器做正常的HTML和JS解析執行,XSS攻擊就發生了。存儲型 XSS 一般出現在網站留言、評論、博客日誌等交互處,惡意腳本存儲到客戶端或者服務端的數據庫中。

3.DOM-based 型XSS攻擊基於 DOM 的 XSS 攻擊是指通過惡意腳本修改頁面的 DOM 結構,是純粹發生在客戶端的攻擊。DOM 型 XSS 攻擊中,取出和執行惡意代碼由瀏覽器端完成,屬於前端 JavaScript 自身的安全漏洞。

防止方法:

1. 對輸入內容的特定字符進行編碼,例如表示 html標記的 < > 等符號。

2. 對重要的 cookie設置 httpOnly, 防止客戶端通過document.cookie讀取 cookie,此 HTTP頭由服務端設置。 

3. 將不可信的值輸出 URL參數之前,進行 URLEncode操作,而對於從 URL參數中獲取值一定要進行格式檢測(比如你需要的時URL,就判讀是否滿足URL格式)。 

4. 不要使用 Eval來解析並運行不確定的數據或代碼,對於 JSON解析請使用 JSON.parse() 方法。 

5. 後端接口也應該要做到關鍵字符過濾的問題。 

6. 入參字符過濾,在源頭控制,把輸入的一些不合法的東西都過濾掉,從而保證安全性。如移除用戶提交的的DOM屬性如onerror,移除用戶上傳的Style節點,<iframe>, <script>,<a>節點等

7. 出參進行編碼,如果源頭沒控制好,就得後期補救了:像一些常見的符號,如<>在輸出的時候要對其進行轉換編碼,這樣做瀏覽器是不會對該標籤進行解釋執行的,同時也不影響顯示效果。例如:對<>做編碼如:"<"用:"&lt;",">"用:"&gt;"來代替。

8.入參長度限制,通過以上的案例我們不難發現xss攻擊要能達成往往需要較長的字符串,因此對於一些可以預期的輸入可以通過限制長度強制截斷來進行防禦。

本文參照部分博客總結,侵刪

https://blog.csdn.net/czh500/article/details/88202971,

https://www.cnblogs.com/mao2080/p/9460397.html,

https://www.cnblogs.com/zhidongjian/p/10413635.html,

https://www.cnblogs.com/liliuguang/p/10429163.html,

https://www.v2ex.com/amp/t/362625

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章