[英]php, html mysql 'select * from table' interpreted as <select></select> option box
我剛剛遇到了一個奇怪的顯示問題。
我有一個電子商務網站,它允許用戶在描述字段中添加自由文本。 該值存儲在 mysql 數據庫中,稍后在描述中讀出到屏幕上。
在一些測試中,我發現如果用戶輸入“select * from table”,它會被正確存儲並返回,但 html 正在將其轉換為
<span class="idesc break-word">TESTING TESTING %$#$!OIUOQI#UQO@)( <select *="" from="" table=""></select></span>
它反過來顯示為一個空的選擇下拉框。
我已經用了? 首先將php中的變量綁定到mysql代碼:
如果以這種方式創建的字段的值被進一步向下傳遞到應用程序並且最終可以發送到數據庫,那么您很容易受到 SQL 注入攻擊。
是否有一些代碼正在尋找“選擇”並決定應該從中創建一個字段? 如果是,那看起來有些危險,並且該電子商務應用程序可能會在更多領域做出潛在危險的決定。
綁定是防止輸入意外數據類型的一個很好的步驟,但更進一步,例如限制某些字符,例如 ;<> 也是一個好方法。 你的例子讓我擔心的是,你並不期待一個選擇字段,而是得到了一個; 這意味着一旦被破壞,該機制可能會被進一步利用來與您的數據庫進行交互。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.