- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
<?php
session_start();
if(empty($_SESSION['UserLogin']) or empty($_SESSION['UserId']))
{
header('Location: /');
}
else
{
include("application/db.config.php");
$GetterUser = $_POST['ForUser'];
$SenderUser = $_SESSION['UserId'];
$Rem = strip_tags($_POST['Rem']);
$Text = strip_tags($_POST['Text']);
if($Rem == "" or $Text == "")
{
header("Location: sent_mess?to=$GetterUser&status=bad");
}
else
{
$SendingMessQuery = mysql_query("INSERT INTO Dialogs(From, To, Rem, Text) VALUES($SenderUser, $GetterUser, '$Rem', '$Text')", $db) or die(mysql_error());
mysql_close($db);
header("Location: sent_mess?to=$GetterUser&status=good");
}
}
...
Кажется, слово "безопасность" автору неизвестно...
Молодо-зелено. Может, еще выправится?
Но теперь я думаю Ебать это пиздец >_<
P.S. Как минимум - не поддерживаются олдфажныенекрофильские версии, что немного сужает область применения.
> некрофильские версии
Забили бы все на эту некрофилию, так даже самые слоупочные хостеры быстренько бы накатили пых посвежее, с поддержкой PDO. Куда бы они делись.
P.S. Самое забавное, что драйвера на редкие базы типа того же ibm informix остались только через PDO, а старые версии, которые без PDO они тупо выкинули.
Вот есть чудесный продукт от жопы одина. Сначала пищали при переходе с шестой версии на седьмую. Потом на восьмую. Теперь пищат при каждом мажорном релизе. Ситуация сохраняется в том числе и для продуктов на платформе. Слоупоуков всё устраивает в БП 1.6, ну, кроме того, что её перестали поддерживать. Обновление может сулить геморрой администраторам и нервный тик бухам, поскольку сменили там обширно.
Кто прав? Ретрограды или прогрессоры? И такая ситуация повсеместно.
А с пхп ситуация немного другая - можно запустить несколько его версий одновременно. Да, это не совсем тривиально, если пых висит модулем, но вполне реально. Есть старый код - ну и пусть себе крутится на старой пыхе еще лет 10. А новые то проекты зачем писать под заведомо мертвую платформу? Тут я буду на стороне прогресса.
ithappens почитываем?
Ну да ладно )
Тут возникает интересный вопрос. Дело в том, что подготовленные выражения защищают от одного рода уязвимостей, но при этом расхолащивают программистов, уверяя в тотальной безопасности. Как защита от SQL-инъекций (определённого рода) это подходит просто отлично, да, но при этом не стоит забывать, что всё равно _необходимо_ тщательно валидировать данные.
А в этом никаких пуль не бывает.
Но тот, кто допускает в своем коде SQL иньекции и об этой проверке забудет... Поэтому мэджик квоты - хорошая идея, но хуёвая реализация.
P.S. Можно было что-то типа заразных строк (в пёрле, емнип, можно включить такой режим). Все входные строки и переменные окружения заразные. Все строки, порожденные от таких - тоже. sql функции падают с фатальной ошибкой, получив такую строку. Вылечить строку можно только явным кастом, или включив меджик квоты.
P.P.S. Хотя и тут пыхер будет писать в духе mysql_query(untaint(...))