也許我對這方面還沒有足夠的瞭解,所以我正在尋找一個小方向。安全問題/ SQL注入與MySQL整理?
我們所有的表格都顯示latin1_swedish_ci的排序規則。下面是我在MySQL變量看:
collation connection utf8_general_ci
(Global value) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
現在,我們看到的UTF8(或者,至少,外語內容)存儲在DB漂亮頻繁,它正確呈現。排序規則對此無關緊要嗎?
在用戶輸入中使用類似於php的addslashes()這樣就足夠了嗎?或者,這是否留下了一個注入機會?
編輯: 所以,看的全套整理/字符集設置,至少在phpMyAdmin,我看到:
character set client utf8
(Global value) latin1
character set connection utf8
(Global value) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Global value) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_general_ci
(Global value) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
這些設置意味着什麼。他們都被覆蓋。它只是默認值。檢查特定的表字符集。 SHOW CREATE TABLE查詢可以顯示它 – 2010-09-08 22:10:46
在我們的各種表上運行「show create table」顯示默認字符集= latin1。在我們的php方面,我們將輸出內容類型設置爲utf-8。所以,這裏可能會有不匹配的情況,但是事情可以正確顯示。 。 。 – Neil 2010-09-08 22:43:03