- 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");
}
}
...
Vasiliy 11.12.2012 10:11 # +9
Lowezar 11.12.2012 10:14 # +5
Govnisti_Diavol 11.12.2012 15:49 # +2
Кажется, слово "безопасность" автору неизвестно...
Vindicar 11.12.2012 17:37 # +2
Молодо-зелено. Может, еще выправится?
Govnisti_Diavol 13.12.2012 17:59 # 0
LispGovno 13.12.2012 18:43 # +1
Stud 11.12.2012 16:25 # −5
guest 11.12.2012 16:49 # +4
psycho-coder 14.12.2012 18:20 # +2
Но теперь я думаю Ебать это пиздец >_<
bormand 14.12.2012 18:40 # +2
eth0 14.12.2012 20:05 # +2
P.S. Как минимум - не поддерживаются олдфажныенекрофильские версии, что немного сужает область применения.
bormand 14.12.2012 20:41 # +1
> некрофильские версии
Забили бы все на эту некрофилию, так даже самые слоупочные хостеры быстренько бы накатили пых посвежее, с поддержкой PDO. Куда бы они делись.
P.S. Самое забавное, что драйвера на редкие базы типа того же ibm informix остались только через PDO, а старые версии, которые без PDO они тупо выкинули.
eth0 14.12.2012 22:45 # +1
Вот есть чудесный продукт от жопы одина. Сначала пищали при переходе с шестой версии на седьмую. Потом на восьмую. Теперь пищат при каждом мажорном релизе. Ситуация сохраняется в том числе и для продуктов на платформе. Слоупоуков всё устраивает в БП 1.6, ну, кроме того, что её перестали поддерживать. Обновление может сулить геморрой администраторам и нервный тик бухам, поскольку сменили там обширно.
Кто прав? Ретрограды или прогрессоры? И такая ситуация повсеместно.
bormand 14.12.2012 23:12 # +2
А с пхп ситуация немного другая - можно запустить несколько его версий одновременно. Да, это не совсем тривиально, если пых висит модулем, но вполне реально. Есть старый код - ну и пусть себе крутится на старой пыхе еще лет 10. А новые то проекты зачем писать под заведомо мертвую платформу? Тут я буду на стороне прогресса.
psycho-coder 14.12.2012 23:35 # +2
ithappens почитываем?
bormand 14.12.2012 23:47 # +1
psycho-coder 14.12.2012 23:54 # +2
eth0 15.12.2012 11:50 # +1
psycho-coder 15.12.2012 17:42 # +2
Ну да ладно )
eth0 15.12.2012 17:35 # +3
Тут возникает интересный вопрос. Дело в том, что подготовленные выражения защищают от одного рода уязвимостей, но при этом расхолащивают программистов, уверяя в тотальной безопасности. Как защита от SQL-инъекций (определённого рода) это подходит просто отлично, да, но при этом не стоит забывать, что всё равно _необходимо_ тщательно валидировать данные.
А в этом никаких пуль не бывает.
Govnisti_Diavol 14.12.2012 21:46 # −2
bormand 14.12.2012 22:19 # +5
Но тот, кто допускает в своем коде SQL иньекции и об этой проверке забудет... Поэтому мэджик квоты - хорошая идея, но хуёвая реализация.
P.S. Можно было что-то типа заразных строк (в пёрле, емнип, можно включить такой режим). Все входные строки и переменные окружения заразные. Все строки, порожденные от таких - тоже. sql функции падают с фатальной ошибкой, получив такую строку. Вылечить строку можно только явным кастом, или включив меджик квоты.
P.P.S. Хотя и тут пыхер будет писать в духе mysql_query(untaint(...))