levi-de
Новичок
критическая ошибка в безопасности скрипта
здравствуйте, товарищи,
предлагается найти ошибку в безопасноти скрипта и варианты её устранения
Edit: сразу бросается в глаза декларация глобальных переменных посредством REQUEST.
здравствуйте, товарищи,
предлагается найти ошибку в безопасноти скрипта и варианты её устранения
PHP:
<?php
$order = strval(@$_REQUEST['order']);
$condition = array(
username => strval(@$_REQUEST['name']),
password => strval(@$_REQUEST['password']),
);
$sql = "SELECT 1 FROM users";
$results = getResults($sql, $condition, $order);
if (count($results)) { // array (elemente sind objekte) with results
echo "Login ok!";
} else {
echo "Login nicht ok!";
}
function getResults ( $sql, $condition, $order )
{
$where = array();
foreach ($condition as $field => $value) {
$where[] = $field . ' = ' . addslashes($value);
}
if (count($where)) {
$sql .= ' WHERE ' . implode(' AND ', $where);
}
$sql .= " $order";
$results = array();
$result = mysql_query($sql);
while (($row = mysql_fetch_object($result)) !== FALSE) {
$results[] = $row;
}
return $results;
}
?>