Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$sql = "SELECT user FROM userslist WHERE userid='".mysql_real_escape_string($_GET['uid'])."'";
Мне вообще непонятно, чем думали авторы PHP, когда добавляли туда mysql_query.
$result = $users->get( $params->uid );
String.Format("SELECT * FROM table WHERE column = {0}", "значение");sprintf("SELECT * FROM table WHERE column = %s", "значение");echo is_numeric('0xff'); // 1
SELECT *
FROM transactions
WHERE user_ = 0x13
$id = (int)$_GET['id'];
$search = base64_encode("%$search%");
$sql = "SELECT * FROM `table` WHERE title LIKE FROM_BASE64('$search')";
$username = $_GET['username'];
// обеззараживаем $username
// ...
mysql_query("SELECT ALL FROM blablabla WHERE username = "{$username}");
$g_uid = intval($_GET['uid']);
if ($g_uid == $_GET['uid']) {
$sql = "SELECT user FROM userslist WHERE userid=".$g_uid;
}if (!isset($_GET['id'])) Core::forward404();
$topicId = intval($_GET['id']);
if ($topicId < 1) Core::forward404();
$db = Core::getDatabase();
$topic = $db->selectRow('SELECT * FROM topics WHERE topic_id = ?d', $topicId);
if (!$topic) Core::forward404();
...
$topicId = isset($_GET['id']) ? intval($_GET['id']) : 0;
$db = Core::getDatabase();
$topic = $db->selectRow('SELECT * FROM topics WHERE topic_id = ?d', $topicId);
if (!$topic) Core::forward404();
...
intval($_GET['uid']) == $_GET['uid'], может быть вполне корректен семантически. Да и даже если нет, проще сделать холостой запрос, чем «пачкать» код проверками, если число холостых пренебрежимо мало.if (is_numeric($_GET['uid']))
...
$sql = "SELECT id FROM userslist WHERE username='" . mysql_real_escape_string($_GET['username']) . "'";
$sql = "SELECT user FROM userslist WHERE userid='" . intval($_GET['uid']) . "'";
$sql = "SELECT `user` FROM `userslist` WHERE `userid`='" . intval($_GET['uid']) . "'";
$ids = array(1, 101, 303);
$db->select('SELECT name FROM tbl WHERE id IN (?a)', $ids);
...
$name = $_GET['name'];
$db->selectRow('SELECT * FROM users WHERE name = ?', $name);
...
$row = array('name' => 'Hint', 'age' => 25);
$db->query('INSERT INTO users SET ?a', $row);
$topic = $db->selectRow('SELECT * FROM topics WHERE id = ?d', $_GET['id']);
".select .. from ... where strcmp(field,'".$mustBeString."')=0 or id=".(int)$mustBeInt.";"
Самый частый шаблон SQL инъекций в РНР — бесполезное экранирование символов