簡體   English   中英

你如何表示變量在php中“未經過清理”?

[英]How do you signify that a variable is “unsanitized” in php?

我已經在php中編寫了一些基本的網站和應用程序,但我之前從未真正改編過任何嚴格的命名標准,除了我如何命名存儲MySQL數據庫中的數據的變量,在這種情況下我將它命名為完全相同作為列名(通常類似於a_column_name)。

我知道區分“不干凈”和“干凈”變量非常重要,因此我不會意外地最終允許SQL注入或XSS發生,但我不確定我應該使用什么命名約定。

有什么建議?

我不認為這是正確的做法。

首先,變量可以用各種方式編碼,比如sql,urls,html,......你也應該編碼盡可能接近消費。 即輸出前的html編碼,傳遞給mysql之前的sql escape ...

當然在sql的情況下,您應該更喜歡准備語句而不是構建字符串查詢。


因此,如果您堅持使用命名約定,則應基於應用於該變量內容的轉義/編碼,而不是您未清理的內容。

你只需要記住逃避價值。

例如,如果您使用mysql存儲字符串。

使用mysql_real_escape_string()

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

當你需要在頁面中打印一些值時

使用: htmlspecialchars

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM