Как лучше всего организовать безопасность ввода данных в поля ввода: addslashes, htmlspecialchars, javascript проверки ввода данных? Еще какой-то способ?
Примечание:
p.s. забыл убрать ярлычок "делфи", устанавливаемый по умолчанию...
Примечание:
>> ... и добавить ярлычок php
ну да) забыл ярлыки отредактировать, в общем...
То есть по идее, если использовать mysql_real_escape_string() для формы регистрации, то больше ничего и не нужно? Форму авторизации не нужно делать безопасной? Только те формы, где используется запись данных в БД?
Примечание:
wowan1,
> Написать свою функцию проверки.
Через регулярные что ли?
Примечание:
Ниче не понимаю... добавляю функцию mysql_real_escape_string для форм авторизации и регистрации. Регистрирую пользователя с логином "test's", но залогиниться под ним невозможно, хотя и в БД он записывается как "test\'s", и при авторизации стоит та же самая функция. ЧЯДНТ?
function reg()
{
// Ищем пользователя с именем, указанным в форме регистрации
$result = mysql_query( "SELECT * FROM `users` WHERE `user_login` = '" . mysql_real_escape_string( $_POST['user_login'] ) . "' LIMIT 1" );
// Если пользователь найден, делаем редиркт
if( mysql_num_rows( $result ) == 1 )
{ redirect( "exists" ); }
// Иначе, регистрируем пользователя
$regtime = date( 'Y-m-d H:i:s');
mysql_query( "INSERT INTO `users` (`user_ID`, `user_login`, `user_pass`, `user_regtime`) VALUES ( 'NULL' , '" . mysql_real_escape_string( $_POST['user_login'] ) . "' , '" . md5( $_POST['user_pass1'] ) . "' , '$regtime')" );
$_POST['user_pass'] = $_POST['user_pass1'];
// Делаем автоматическую авторизацию после регисрации.
auth();
}
function auth()
{
// Ищем пользователя с именем, указанным в куках
$result = mysql_query( "SELECT * FROM users WHERE user_login = '" . mysql_real_escape_string( $_POST['user_login'] ) . "' AND `user_pass` = '" . md5( $_POST['user_pass'] ) . "' LIMIT 1" );
// Еслии пользователя с таким именем нет, делаем редирект
if( mysql_num_rows( $result ) == 0 )
{ redirect( "not_auth" ); }
// Парсим полученную запись.
$user = mysql_fetch_object( $result );
// Получаем текущее время с учетом дробных частей секунды
$tm = getmicrotime();
// Вставляем запись в таблицу с сессиями.
mysql_query( "INSERT INTO `sessions` VALUES( " . $user -> user_ID . " , " . time() . " , '" . hashes( $user -> user_login , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $tm ) . "' )" );
// Ставим пользователю куки с его логинов и уникальным временем авторизации. Время жизни кук - 15 минут
setcookie( "time" , $tm , time() + 900 , "/" );
setcookie( "user_login" , $user -> user_login , time() + 900 , "/" );
// делам редирект без параметра, т.к. никаких ошибок не было
redir( "/" );
}
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.