• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Типы и PHP

  • Автор темы vital
  • Дата начала
V

vital

твык от типов вообще
P.S. обожаю язык PHP
Зря. У этого пхп из-за явного отсутствия типов - очень много проблем. С той же безопасностью, например.
Да.. Такой бред может делать только С. Вот толькоy надо ли, а?)
 
E

ensane

PHP провоцирует "неиспользование" типов. Из-за этого иногда бывают глупые ляпсусы.
 
V

vital

Из-за этого иногда бывают глупые ляпсусы.
Угу.
например, ф-я strstr(), может вернуть 0, может false. При этом, проверка результата ее работы выглядит примерно так
if strstr()==0 //один результат
if strstr()==false //второй
if strstr()===false //третий.

Ну не бред ли?
Не говоря уже, о классических ошибках в духе
$id=$_GET['id'];
и даллее mysql_query("...WHERE id=$id");
Вот вам и готовая mysql injection.

Когда, со строгими типами такого бы не было. А писать как-нить в духе $id=(int)$_GET['id']; далеко не у всех хвает ума. И вся беда в том, что пых _сам_ к этому провоцирует. т.е сам язык провоцирует к ошибкам, когда как все другие ЯП - ограждают.

ну и вообще.. ПРо убогость пыха можно много написать..
 
A

acorn

Ну не бред ли?
Не говоря уже, о классических ошибках в духе
$id=$_GET['id'];
и даллее mysql_query("...WHERE id=$id");
ORMы и фрэймворки в помощь

например, ф-я strstr(), может вернуть 0, может false. При этом, проверка результата ее работы выглядит примерно так
if strstr()==0 //один результат
if strstr()==false //второй
if strstr()===false //третий.
чем бред? зато как красиво:
if($isDefault) - и пофик там 0 или false или null... или if($idAccount) - аналогично.

имхо, все эти проблемы высосаны из пальца и при нормальном подходе скорее плюс ;)

а смысл?

сорри за сумбурность, с днём студента всех :)
 
V

vital

if($isDefault) - и пофик там 0 или false или null... или if($idAccount) - аналогично.
1. Ты забыл !
2.
Я тебе о том и написал. Что такая конструкция не всегда верна. Потому что может быть ==false а может быть ===false и это _разные_ случаи - поэтому не пофиг.
К тому же, с нуллом, тоже не все так просто.
3. if($isDefault) вот как раз такая конструкция возможна в любом языке с типом boolean =)
ORMы и фрэймворки в помощь
Это тоже беда пыха, что что бы исправить недочеты языка надо использовать что-то дополнительное.
Гугли книжки про безопасность скриптов=)
при нормальном подходе скорее плюс
При подходе таком, как был задуман изначально? в смеси хтмл+пхп, на маленьких хоумпейджах да. Но когда пишешь что-то мало-мальски серъёзное, следить за этим прораммисту _вместо_ интерпретатора - мне кажется глупо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!