PHP-скрипт, запрос запускается из значения, переданного в - PullRequest
0 голосов
/ 21 декабря 2010

Я довольно новичок в php, быстрое примечание, это приложение для Android, которое я называю этим скриптом, у меня нет пользователей, составляющих скрипт lol.Существует ряд флажков, и когда они отмечают определенные, он добавляет скрипт к строителю строк.Я пытаюсь выполнить запрос, основанный на значении переменной, которая передается. Обычно я делаю что-то вроде этого,

   mssql_query("UPDATE Userdata SET BrowseScript = '".$_REQUEST['sqlscript']."' 
WHERE Userdata.Username = '".$_REQUEST['Username']."'");

и где он говорит. $_REQUEST[''] Я могу получить значения, которые яПередача, Запрос правильный, но он просто не вернет никакого значения, я думаю, что у меня может быть какая-то синтаксическая ошибка или что-то вроде того, как я сказал, что я новичок в php.Спасибо за любую помощь.Также я не публикую весь код, потому что все работает нормально, я просто не могу запустить этот запрос.так что все, что мне нужно помочь, это часть mssql_query еще раз спасибо.

Ответы [ 3 ]

0 голосов
/ 21 декабря 2010

Для всего святого, не делай этого!

Вы не просто используете параметры запроса и помещаете их в запросы SQL. Вы по крайней мере используете mysql_real_escape_string (или каков бы ни был эквивалент MSSQL, никогда не использовал его). И вы, безусловно, не принимаете целые запросы в запросе и выполняете их незаметно.

Вы открываете огромные зияющие дыры в безопасности. Особенно, если вы новичок, прекратите это сейчас, пока это не стало привычкой!

example.com/foo.php?sqlscript=DROP TABLE users

Минимальная необходимая лекция: http://www.php.net/manual/en/security.database.sql-injection.php

0 голосов
/ 21 декабря 2010
  1. Скажите вашему сценарию выводить содержимое $ _REQUEST ['sqlscript']

    echo $ REQUEST ['sqlscript'];

  2. Проверьте правильность вывода.Возможно, вы обнаружите, что есть некоторые ошибки синтаксического анализа или просто ваш сценарий не завершен.Проверьте кавычки (") и убедитесь, что запрос действителен.

  3. Кроме того, вы должны никогда запускать скрипт из запроса. Представьте, что кто-то просматривал вашsite and typed

    youtsite.com? sqlscript = 'drop * from tables';

Вся ваша база данных будет стерта.

0 голосов
/ 21 декабря 2010

Прежде всего имеет огромный недостаток безопасности в том, что вы делаете. Вы всегда должны проводить санитарную обработку и избегать переменных, которые вы используете в своих запросах, например, используя mysql_real_escape_string или подготовленные операторы.

Поскольку вы импортируете весь скрипт для своего запроса, возможно, кавычки не экранированы. Вам нужно поместить эти функции перед переменными:

mysql_real_escape_string($_REQUEST['your_var']);

Использование $_REQUEST само по себе вместо $_GET или $_POST уязвимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...