<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

В чем плюс такого способа.
05.11.2012 16:30:24 В чем плюс такого способа. Сообщение #1
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

Высмотрел на одной из cms.
$arguments = array('username'=>$una); $result = $db->Query("INSERT INTO ... VALUES ('{username}')", $arguments);

В чем плюс такого способа, инъекции тд. Как по защите, лучше?
Профиль Ответить
05.11.2012 16:45:57 В чем плюс такого способа. Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Это совершенно бессмысленный отрывок. Что за $db? Что за метод Query(), что внутри этого метода?
Профиль Ответить
05.11.2012 18:03:58 В чем плюс такого способа. Сообщение #3
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

$db-подключение к бд.
public function Query($sql, $data = array()) {
$sql = $this->query_process($sql, $data);
$this->count_query++;
$this->ResetError();
$this->sql = $sql;
$xtime = microtime();
$this->result = @mysql_query($this->sql, $this->mysql_link);
// start the analysis
if (TRUE === $this->result) { // simply result
$return = TRUE; // successfully (for example: INSERT INTO ...)
} else if (FALSE === $this->result) {
$this->SetError();
$return = FALSE; // error occured (for example: syntax error)
}
else // complex result
{
$num_result = mysql_num_rows($this->result);

switch( $num_result )
{
case 0:
$return = NULL; // return NULL rows
break;
case 1: // return one row ...
if(1 != mysql_num_fields( $this->result))
{
$return = array();
while( $obj = mysql_fetch_object($this->result)) array_push($return, $obj);
}
else
{
$row = mysql_fetch_row($this->result); // or as single value
$return = $row[0];
}
break;
default:
$return = array();
while( $obj = mysql_fetch_object($this->result)) array_push($return, $obj);
}
}
$ytime = microtime();
$this->delta += array_sum(explode(' ',$ytime)) - array_sum(explode(' ',$xtime));

return $return;
}
Профиль Ответить
05.11.2012 18:28:16 В чем плюс такого способа. Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Здесь нет плюсов, это просто более удобный способ отправки запросов к базе данных. Самый обычный фреймворк. Никакой защиты я здесь не увидел, но она должна быть, возможно, в других методах данного класса.
Профиль Ответить
05.11.2012 18:39:10 В чем плюс такого способа. Сообщение #5
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

Не по теме...
Инъекции
Проверяю присланные посты($_POST..), на содержание того чего должны содержать. Как еще можно сделать инъекцию, обойти эту проверку?
Профиль Ответить
05.11.2012 18:45:20 В чем плюс такого способа. Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

htmlspecialchars() используйте, и уже 99% проблем уйдут. А если Вы ещё будете проверять корректность данных через регулярные выражения, то будет ещё лучше.
Профиль Ответить
05.11.2012 19:12:25 В чем плюс такого способа. Сообщение #7
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

Спасибо.
Профиль Ответить