0

suppose i have a query like this :

$std_id =   $_POST['std_id'];
$name   =   $_POST['name'];
$family =   $_POST['family'];

$sql    =   "insert into student set
 std_id =   $std_id,
 name   =   '$name',
 family =   '$family'"; 
$query  =   mysql_query($sql,$conn); 

i read in a php security book that if user enter a value for family field like :

ahmad';drop database test#

can delete database test;

but we know that the mysql_query() function only allow to execute one query .
i want to know how can this input to be unsafe

4
  • possible duplicate of Best way to stop SQL Injection in PHP Commented Nov 26, 2011 at 11:06
  • @ManseUK The question seems to be not about how to prevent SQL-injection, but how come that the mysql_query() function executes two statements in this scenario. Commented Nov 26, 2011 at 11:11
  • 1
    @Quasdunk SQL security is not always about running multiple statements - anything could be added to the end of that query that affects the insert Commented Nov 26, 2011 at 11:12
  • 1
    well gee I hope you add more "security" to your code before it goes live... Commented Nov 26, 2011 at 16:31

3 Answers 3

3

There are many delusions in your question.
Let's sort them out.

  1. mysql_query() doesn't support multiple queries execution.
    (so, it is useless to delete anything)
  2. dropping tables in the separate query is not the only way of the SQL injection.
    (so, it is useless to delete anything again)
  3. To protect your query you have to follow some well-known techniques, not some handmade inventions of doubtful efficiency.
Sign up to request clarification or add additional context in comments.

Comments

3

Just worrying about multiple queries is not enough to protect SQL Security ... There are so many questions / answers on SO for you to read about this subject ..

Also good resources on php.net

Comments

0

Using multiple queries separated by a semicolon is not the only way to exploit your queries, it is just a very simple example. It will work, when you are using mysqli_multi_query().

2 Comments

I think that it is because the question was quite contrary - how to NOT to execute multiple queries
The question was "i want to know how can this input to be unsafe" which was answered.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.