Безопасность отправки поля формы

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Безопасность отправки поля формы

Сообщение miltorg »

Достался на доработку сайт на yii1

Вопрос безопасной записи в базу.

if ($_POST and $idic=$_POST['idicalimport']) {
$nomer = $_POST['nomer'];
if (preg_match('/\d{1,2}/', $nomer)){
$_=trim($_POST['icalimport']);
if (preg_match('/[\'"<>; #]/', $_) == 0) $here->updateGoogleLink($_, $idic, $nomer);
}
}

<form method="post" action="#<?=$id;?>">
<input type="hidden" name="YII_CSRF_TOKEN" value="<?php echo Yii::app()->request->csrfToken;?>">
<input type="submit" value="<?=tt('Save', 'common');?>" class="big_button button-blue">
<input name="icalimport" value="<?=$icalimport?>" style="width: 100%;">
<input name="idicalimport" type="hidden" value="<?=$id?>">
<input name="nomer" type="hidden" value="<?=$nomer?>">


class HERE {
function updateGoogleLink($link, $apId, $nomer) {
$msg = 'access_error';
if ($nomer==0) $nom='';
else $nom=$nomer;
$sql = "DELETE FROM {{booking_calendar}} WHERE apartment_id=$apId AND from_google=1 AND nomer=$nomer";
Yii::app()->db->createCommand($sql)->execute();
$sql = "UPDATE {{apartment}} SET google_calen$nom='$link' WHERE id=$apId";
Yii::app()->db->createCommand($sql)->execute();

require 'ics-parser-master/class.iCalReader.php';

$ical = new ICal($link);
$events = $ical->events();
$start_month = date('Y-m-01');
if ($events)
foreach ($events as $event) {
$start_str = $ical->iCalDateToUnixTimestamp($event['DTSTART']);
$end_str = $ical->iCalDateToUnixTimestamp($event['DTEND']);
if ($start_str<$start_month && $end_str<$start_month) continue;

$model = new Bookingcalendar;

$model->date_start = date('Y-m-d', $start_str);
$model->date_end = date('Y-m-d', $end_str);
$model->status = 1;
$model->from_google = 1;
$model->nomer = $nomer;
$model->apartment_id = $apId;

if ($model->validate()) {
if ($model->save(false)){
}
}
}
}

}
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Безопасность отправки поля формы

Сообщение miltorg »

Работает. Но хотелось бы услышать про безопасность.
На каком этапе yii обработки данные безопасны.

Тут $idic=$_POST['idicalimport'] - ведь они точно не безопасны?
Или нет?

Как правильно с точки зрения yii1 воткнуть это поле.

Спасибо.
Ответить