我們目前接觸到的小工程有很多是需要連線資料庫才能實現的。例如小型超市管理系統,資料監管**等。
這些小工程必然會涉及到sql注入問題。目前我碰到的問題如下:
1.最簡單的資料庫排序規則問題,在mysql中,資料庫儲存的資料被分為很多排序規則,預設為 「latin1_swedish_ci」,在此規則下,資料不能為中文,只能為字母和數字,若通過應用程式在資料庫中新增不符合規則的資料,會顯示亂碼或不顯示。
其實這類問題在我當時寫程式時很容易發現。。在查了幾遍**後保證並沒有什麼後台操作是會將資料修改成無意義亂碼的情況下,那麼顯然是資料庫出現了問題。
那麼顯然,只有兩種錯誤可能,型別和排序規則。簡單查閱一下資料便可知使用utf8規則才能支援中文輸入。
2.sql注入問題。
定義:利用現有應用程式,將惡意的sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入惡意sql語句得到乙個存在安全漏洞的**上的資料庫,而不是按照設計者意圖去執行sql語句。
使用者在程式端的輸入行為是無法**的,所以要在程式中使用正規表示式等方法對使用者的輸入資料進行檢測,對於後台資料庫引擎錯誤的select命令丟擲異常即可。
資料庫工程師軟考錄(一)
這是第一篇部落格,主要記錄我在2018年上半年的資料庫工程師總結的一些小技巧,適用於一開始沒什麼複習頭緒的朋友,同時也給自己的學習過程做個總結,慢慢來。我現在是按筆記怎麼做就先怎麼寫,之後會在細分模組來寫 十進位制轉二進位制 除2取餘,直到商為零,從下往上數商,則為二進位制數。二進位制轉十進位制,從...
軟考 資料庫
先上圖一張 概念 超鍵 在關係中能唯一標識元組的屬性集 候選鍵 能唯一標識元組,且不含多餘屬性 也可理解為不含多餘屬性的超鍵 主鍵 被選作元組標識的候選鍵 主屬性 候選鍵中的屬性稱為主屬性 非主屬性 非候選鍵中的屬性成為非主屬性 舉例 光看概念很抽象,通過例子來看就會變得明了,比如乙個學生 學號,身...
軟考 資料庫系統工程師
sql語言 例題 9.1建立乙個 商和乙個零件資料庫。其中 商 表s sno,sname,status,city 的屬性分別表示 商 商名 商狀態以及 商所在的城市。零件 表p pno,pname,color,weight,city 的屬性分別表示零件號 零件名 顏色 重量以及產地。其中,資料庫需要...