碼 -幫助PHP中的輸出
$price = mysqli_real_escape_string($connect,trim($results['price']));
價格從數據庫中檢索,然後利用呼應 -
echo $price;
的問題 - 這是來自XSS或SQL注入足夠安全?它只包含數字。
感謝
碼 -幫助PHP中的輸出
$price = mysqli_real_escape_string($connect,trim($results['price']));
價格從數據庫中檢索,然後利用呼應 -
echo $price;
的問題 - 這是來自XSS或SQL注入足夠安全?它只包含數字。
感謝
的檢查應該可能數據輸入過程中完成的,但你可能是安全的,並檢查在輸出。我只是使用is_numeric
或類似的東西來確保輸出的確是一個數字。
標準做法是使用htmlspecialchars()
或htmlentities()
將輸出轉義到瀏覽器以防XSS。但正如另一個答案中提到的那樣,真正的問題是,正確的數據是否首先存儲在數據庫中。在存入數據庫之前,應該對它進行適當的驗證和轉義。
爲了安全起見,您需要如果從用戶輸入輸入$results['price']
。
如果您需要在將其發送到SQL之前將其強制驗證/清理爲預期值,
如果您的數據只能從db讀取,您可以使用mysqli_real_escape_string()忽略。這對於轉義應該寫入數據庫的用戶輸入非常有用。
mysqli_real_escape_string()用於轉義要插入到數據庫中的數據,以防止SQL注入。它與XSS無關。
你必須使用htmlentities()來做你想做的事情。我建議你閱讀eykanal的答案,並使用is_numeric來驗證。
是$ results ['price']用戶輸入? – CJD
@CJD no。它是mysqli_fetch_array – sarthak
只有在用戶操作寫入數據庫時纔會發生SQL注入。 –