Атаките с инжектиране на SQL се случват при потребителско въвеждане е неправилно кодиран. Обикновено въведените от потребителя данни са някои данни, които потребителят изпраща със своята заявка, т.е. стойности в $_GET
, $_POST
, $_COOKIE
, $_REQUEST
, или $_SERVER
масиви. Въпреки това, въвеждането на потребителя може да идва и от различни други източници, като гнезда, отдалечени уебсайтове, файлове и т.н.. Следователно, наистина трябва да лекувате всичко освен константите (като 'foobar'
) като потребителски въвеждане .
В кода, който сте публикували, mysql_real_escape_string
се използва за кодиране (=избяга) на потребителски входове. Следователно кодът е правилен, т.е. не позволява никакви атаки с инжектиране на SQL.
Имайте предвид, че е много лесно да забравите извикването към mysql_real_escape_string
- и едно време е достатъчно за умел нападател! Ето защо може да искате да използвате модерния PDO
с подготвени отчети
вместо adodb.