我使用的PHP程序RIPS(http://rips-scanner.sourceforge.net/)掃描我的PHP腳本漏洞,它要回來的消息和addslashes()的不安全使用Userinput到達敏感片由於不帶引號
Userinput reaches sensitive sink due to insecure usage of addslashes() without quotes Userinput reaches sensitive sink due to insecure usage of addslashes() without quotes
什麼這是否意味着addslashes的不安全使用?我如何保護下面的代碼?
47: mysql_query $sql = mysql_query("INSERT INTO questions_answers(PID, Name, Email, Question, Date) VALUES ('$product_ID', '$name', '$email', '$question', '$date') ") or mydie ("Error" . mysql_error() . " File: " . __FILE__ . " on line: " . __LINE__);
4: $product_ID = addslashes($_GET['product_id']);
38: $name = addslashes(strip_tags($name));
34: $name = ucwords($name);
21: $name = '';
5: $name = addslashes($_POST['name']);
40: $email = addslashes(strip_tags($email));
14: $email = '';
6: $email = addslashes($_POST['email']);
39: $question = addslashes(strip_tags($question));
35: $question = ucfirst($question);
7: $question = addslashes($_POST['question']);
36: $date = time();
注意:這是來自RIPS的輸出,請注意應該從下往上讀取它的行數。
這是否意味着重寫整個數據庫連接,插入等。以及我的腳本與數據庫交互的方式? – user1398287
@ user1398287如果您想更改爲PDO或mysqli,您可能需要做出相對重大的更改。使用'mysql_real_escape_string'只需要你改變調用的函數的名稱(即'''addslashes') –
我不會稱爲addslashes「窮人」來支持mysql_real_escape_string,因爲大多數時候它們的行爲完全相同 –