@phpclubru

Страница 151 из 956
Dmitry
18.03.2017
14:52:27
какие обертки?

Alexey
18.03.2017
14:54:28
какие обертки?
Вот такие например https://github.com/colshrapnel/safemysql/blob/master/README.md

Dmitry
18.03.2017
14:54:49
А для mysqli зачем их писать?

Google
Alexey
18.03.2017
14:55:27
А для mysqli зачем их писать?
Чего не знаю, того не знаю. Уже много лет юзаю PDO и доволен :)

Dmitry
18.03.2017
14:56:06
А... я не знаю, но осуждаю, понятно ;) Эта обертка, к слову, немного шире, чем плейсхолдеры pdo или mysqli, ибо осуществляет типизацию плейсхолдера

Pavel
18.03.2017
14:56:12
У mysqli есть фишки какие-то

Alexey
18.03.2017
14:56:44
интерфейс как у mysql_*

Dmitry
18.03.2017
14:56:49
Есть конечно... PDO универсален, а значит не охватывает все... например, в mysqli есть асинхронность и т.п.

Pavel
18.03.2017
14:56:52
емнип она умеет асинхронно выполнять запросы, работает чуть быстрее и у нее получше с плейсхолдерами в случае postgres jsonb запросов

Alexey
18.03.2017
14:56:55
ну и плейсхолдеры

Dmitry
18.03.2017
14:57:21
а в постресе - хочешь copy - юзай pg_* :)

ну и т.п.

Alexey
18.03.2017
14:57:42
Асинхронность в php, ну ну

Pavel
18.03.2017
14:57:57
Что нуну)

Alexey
18.03.2017
14:58:04
А lazy есть и в pdo

Pavel
18.03.2017
14:58:09
Уже как года 2 есть полноценные реализации

Google
Dmitry
18.03.2017
14:58:38
А, он опять "не слышал, но осуждаю" ;) Хотя пока нелзя будет единый луп для сокетов и mysqli сделать - конечно, не торт

Alexey
18.03.2017
15:00:50
Мне кажется что начался холивар. Изначально ставился вопрос про sql-injection, биндинги и плейсхолдеры. Я ничего и никого не осуждаю, даже интересно узнать что-то новое про mysqli :)

Dmitry
18.03.2017
15:01:06
lazy? fetch_lazy? Это вообще не о том... я вообще не понимаю, почем lazy назвали ;)

Alexey
18.03.2017
15:01:33
Так же как и асинхронность :)

Dmitry
18.03.2017
15:02:18
Асинхронность там нормальная.

Pavel
18.03.2017
15:02:48
Народ, а может кто объяснить, в каких случаях нужно опасатся sql-инъекций? И плейсхолдеры, их для всех функций с базой нужно внедрять или только при записи?
Ну в общем лучше использовать во всех случаях. Это даже повышает читаемость кода, не говоря уже о безопасности. Насчет инъекций почитай в интернете статьи разные, их много. Про инъекции первого, второго рода и т.д.

Dmitry
18.03.2017
15:03:36
Это не холивар, тут все очевидно - если нужны общие средства работы с БД и некая универсальность между базами, то PDO... по-этому его фремворки и любят... если нужны специфические средства работы с базой - то отдельный интерфейс типа mysqli

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

Alexey
18.03.2017
15:05:05
Золотые слова

saintfr3ak
18.03.2017
15:06:10
Ну в общем лучше использовать во всех случаях. Это даже повышает читаемость кода, не говоря уже о безопасности. Насчет инъекций почитай в интернете статьи разные, их много. Про инъекции первого, второго рода и т.д.
Да, я пока поставил safemysql. Просто бывший админ во мне говорит, что нужно заранее все щели безопаности закрывать. В дальнейшем и так планировал PDO ставить, что иметь возможность дружить с Postgre. Просто не в курсе был, что в PDO изначально подобных уязвимостей нет, иначе, мб, с него бы изучение и начал.

в смысле, даже не ставить, а переписывать свой коннектор ) вроде для него все зависимости уже и так у меня есть

Pavel
18.03.2017
15:08:02
Ну как бы говоря "в PDO изначально подобных уязвимостей нет" нужно всегда осознавать относительность подобных утверждений, уязвимости могут быть на уровне сборки библиотеки - переполнение стека, тайминг-атаки какие-нибудь и т.д. Но от всяких sql-inj помогает хорошо, если правильно использовать.

Dmitry
18.03.2017
15:08:49
safemysql - это не Фаната ли либа?

saintfr3ak
18.03.2017
15:09:01
фаната, да

судя по нику на хабре

Dmitry
18.03.2017
15:10:57
ясно, ну в общем нормальная либа, но лучше все же PDO/mysqli юзай сразу... он, вроде, забил на нее сам перейдя на PDO

saintfr3ak
18.03.2017
15:12:12
Не, ну понятно что не от всего. Просто от ddos есть Fail2ban, от прочего - права доступа на файлы и директории, включая темповые, + вынести из конфига за пределы директории апача файл с конфигом. + настройка php-ini в связке с .htaccess .htpassword. Ну или последний пунк в конфиге nginx'a сразу делается, его я пока не изучал вообще

Alexey
18.03.2017
15:12:43
От ddos тебя ни одна либа не спасёт

saintfr3ak
18.03.2017
15:13:01
fail2ban не либа, а файрволл

Pavel
18.03.2017
15:13:39
разве fail2ban от ddos? она же от перебора

Google
saintfr3ak
18.03.2017
15:13:41
ну вплане, на том-же Astrisk он справляется на ура, в отличии от других известных мне.

Dmitry
18.03.2017
15:13:47
fail2ban - это ПО анализа логов и добавления правил в фаирвол, и от ddos не спасет

от нормального ddos...

saintfr3ak
18.03.2017
15:14:41
зависит от качества ddosa)

Dmitry
18.03.2017
15:14:58
от детского может и помочь... типа где пинают один скрипт в цикле

saintfr3ak
18.03.2017
15:15:01
ну я думаю мне еще долго не грозит серьезных атак

Alexey
18.03.2017
15:15:25
Прошёлся по доке бегло, даже нет защиты от syn флуда

а это очень простая и эффективная атака

Dmitry
18.03.2017
15:16:02
ну хз... сайт любой небольшой конторы в конкурентной среде - уже потенциально цель ddosa

Pavel
18.03.2017
15:16:19
оно же на питоне написано, как от syn флуда то защитит...

Dmitry
18.03.2017
15:16:25
хотя в таких случаях дешевле всего cloudflare и оки

saintfr3ak
18.03.2017
15:16:36
который взломали-то недавно? ))

saintfr3ak
18.03.2017
15:17:43
https://www.incapsula.com/incapsula-vs-cloudflare.html кстати юзал кто?

Alexey
18.03.2017
15:17:50
в том то и дело, что это не файервол или защита от атак

и кстати, лучше не апач использовать, а сразу nginx и тюнить проще, и работает лучше

saintfr3ak
18.03.2017
15:18:57
да, это слышал

пасаны, тут чувак, программист от бога, как и дизайнер и бизнесмэн помогите уделать, как тот самый sql injection простой отправить?

amigo.uz сайт

ну сайт чисто поржать на самом деле кинул )

Yoskaldyr
18.03.2017
17:26:51
насчет антиддоса

Google
Yoskaldyr
18.03.2017
17:31:30
инкапсула дороже. очень не любят большие атаки (значительно больше не любят чем клауд фларе). на школоло ддоса предложили перейти на максимальный тариф за несколько к зелени, хотя сначала прайс был около 350$ и сказали что спокойно отобьют текущую атаку. А потом уже после переноса к ним выяснилось что через полдня мы уже израсходовали какие-то лимиты (учитывая что ддос был школоло, который резался на стенке, но клиент хотел сторонее решение). Очень много настроек для тюнинга, хороший автодетект атак и вообще функционал неплохой но с очень убогой админкой.

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

Речь о про тарифе за 200$, потому что на всех меньших при более менее нормлаьной атаке идет включение трафика напрямую. Значительно меньше настроек чем у инкапсулы. Держит любые атаки, но иногда надо донастроить на сервере nginx - очень распределенные может и не поймать + иногда кое какие настройки надо включать через апи что тоже не удобно (через админку никак). Также более приятные капчи. У инкапсулы одна из самых адовых капч.

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

Oleg
19.03.2017
17:43:14
Всем привет, меня зову Олег, я программист, у меня вопрос, как вы думаете, что выведет этот код (чур не исполнять): $result = true and false; var_dump($result);

Роман
19.03.2017
17:44:24
bool(false)

Oleg
19.03.2017
17:45:20
ага, поправил, ?

а первый раз кстати правильно было

Admin
ERROR: S client not available

Роман
19.03.2017
17:46:45
Без линз перепутал or и and. Странное поведение в таком случае :)

Oleg
19.03.2017
17:48:15
да, подвох в том, что приоритет у операции and и or ниже чему у оператора присваивания. Эту удивительно, да..

Роман
19.03.2017
17:49:03
Уже посмотреть на стековерфлоу про это. Пока что не приходилось не видеть не использовать такую форму оператора. Обычно всё-таки залетает && и ||

Oleg
19.03.2017
17:52:25
а вот у меня был коллега который только ими и пользовался вместо && и ||. А я не знаючи об этой особенности долго с ним искал ошибку в его коде, уверяя его что "да это невозможно, должно работать". А там бухгалтерский рассчет какой-то неправильно считал чьито деньги

Роман
19.03.2017
17:53:12
"Не лепи куда попало" (с)

Будем знать теперь о такой особености, спасибо. PHP мой далеко не основной язык и всю спецификацию языка пока не заучивал. А это знать полезно

Pavel
19.03.2017
17:54:04
Когда то давно любили писать $db = mysql_connect() or die('Something went wrong')

Dmitry
19.03.2017
17:56:38
ну это с перла пошло... а вот откуда перл взял, я хз

Вообще сначало было сишные && и ||, а потом добавили уже or/and как раз для таких вот случаев

Oleg
19.03.2017
18:00:29
вообще удивительно как PHP плавно преображался из скриптового языка во все более ява/с++ подобный. Сначала классы, потом неймспейсы, теперь вот типизированные аргументы...

того гляди и до строгой типизации доживем, а там и Дженерики тогда понядобятся..

Google
Dmitry
19.03.2017
18:04:44
до сильной типизации не доживем, останемся на тайпхинтинге, что, в принципе, достаточно, а вот дженерики нужны

Oleg
19.03.2017
18:05:33
хмм.. а зачем могут применятся дженерики если нету строгой типизации?

Dmitry
19.03.2017
18:05:44
потому что есть тайпхинтинг

без дженериков ты не сделаешь func() : User[];

вернее можно сделать в языке, но это, имхо, много затратнее, чем дать дженерики и писать : Collection<User>

Oleg
19.03.2017
18:09:00
но можно ведь просто не указывать типы

Роман
19.03.2017
18:09:42
Гениально

Pavel
19.03.2017
18:09:50
Всмысле можно? Это же снизит надежность и автоконтроль кода.

Oleg
19.03.2017
18:10:00
ну это да

Pavel
19.03.2017
18:10:04
А мы добиваемся наоборот повышения.

Dmitry
19.03.2017
18:14:41
Ну вот и приходится UserCollection на каждый чих лепить

Oleg
19.03.2017
18:19:38
Ну окей, допустим сделали дженерики, Тогда наверняка еще захочется потом Collection<? extends User>..

все это вроде круто, но вот я представляю что очень легко ошибиться в коде и допустим положить в массив объект не того типа, а узнаю я об этом только на этапе исполнения (ведь компиляции то у нас нету) :(

Роман
19.03.2017
18:24:15
Компиляция может и быть, но если нет системы типов то и проверить соответсвено никак

Oleg
19.03.2017
18:29:10
тогда непонятно чем это отличается от того что мы имеем сейчас без использования типов вообще

Pavel
19.03.2017
18:30:39
Это отличается тем что сейчас ты не можешь прописать требование возвращать из метода массив юзеров.

Вернуть юзера - да, вернуть массив - да. А масив юзеров - не.

Страница 151 из 956