我剛剛寫完我自己的PHP註冊腳本,因爲我是新手,我想問一下我使用的方法是否可以安全地從sql注入?這種存儲方法SQL注入「安全」?
這是我與我的SQL數據庫進行數據交換的例子:
public function StoreUser($name, $email, $password, $devid) {
$mysqli = new mysqli("host", "user", "pass", "data");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$unique_id = uniqid('', true);
$hash = $this->hashSSHA($password);
$add_user = $mysqli->prepare("INSERT INTO `users` SET `unique_id`=?, `name`=?, `email`=?, `encrypted_password`=?, `salt`=?, `devid`=?, `created_at`=?");
$add_user->bind_param("sssssss",$unique_id,$name,$email,$hash["encrypted"],$hash["salt"],$devid,date("H:i:s"));
if ($add_user->execute()) {
$add_user->close();
$mysqli->close();
return true;
}
else {
$add_user->close();
$mysqli->close();
return false;
}
}
感謝您的提示!我會研究這一點。 問題是,我還沒有找到適合我的項目的框架。我需要一個數據庫來創建一個android應用程序的用戶列表。我還沒有找到任何令人滿意的框架。 – Lotzki
更受歡迎的PHP選擇是[CakePHP](http://cakephp.org/),[CodeIgnighter](http://codeignighter.com/)或[FuelPHP](http://fuelphp.com),所有這些選項明顯好於從頭開始。這些並不是太棘手的問題,但是你必須按照框架期望的方式來處理,按照慣例,或者他們可能會覺得困難。儘管這些慣例通常有一個原因,並且當你更好地理解哲學時,你所做的很多事情變得更容易實現。你應該實現你的業務邏輯,而不是樣板。 – tadman
一旦你選擇了一個框架,你也可以訪問各種[預製的東西](http://plugins.cakephp.org/)。獨自行走就像試圖在荒野中徒步旅行。它可以是教育性的,但是如果你的目標是要到達某個地方而不是探索,那麼如果有一個目標去你想要的地方,那麼你應該使用一條道路。 – tadman