1.1, Аноним (-), 12:44, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Сейчас эксперты придут и скажут, что дело вовсе не в кривом дизайне похвпэ и что никто уже не использует $_GET и $_POST и вообще Word Press г о в н о к о д.
| |
|
2.3, A.Stahl (ok), 12:48, 03/02/2017 [^] [^^] [^^^] [ответить]
| +4 +/– |
Это плата за слишком вольное неявное приведение типов.
По каким-то причинам современные программисты очень боятся выделять/освобождать память и приводить типы самостоятельно.
| |
|
3.5, asand3r (?), 12:56, 03/02/2017 [^] [^^] [^^^] [ответить]
| +7 +/– |
Потому что это "сложо, неэффективно, небезопасно, пока я буду этим заниматься, можно написать еще сотню строк кода".
| |
|
|
5.38, Аноним (-), 17:26, 03/02/2017 [^] [^^] [^^^] [ответить]
| –4 +/– |
Аналогия некорректная. "PHP" - не язык программирования, а всего лишь шаблонизатор, соответственно и планка для него должна быть как для шаблонизатора. Уродливый дизайн, нет внятных исключений и т. д.? Так это потому, что он и не создавался как язык программирования.
| |
|
6.41, Sw00p aka Jerom (?), 17:46, 03/02/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
какая аналогия ? о чём речь?
>>Так это потому, что он и не создавался как язык программирования.
таки да - об этом говорю не я а сам автор, пхп не ЯП, а апликейшен сервер написанный на С.
| |
6.66, Я. Р. Ош (?), 01:23, 04/02/2017 [^] [^^] [^^^] [ответить]
| –3 +/– |
> нет внятных исключений
О да, как же нубам без исключений, их же другому и не учили
| |
|
|
|
|
2.7, Gemorroj (ok), 13:11, 03/02/2017 [^] [^^] [^^^] [ответить]
| +7 +/– |
>> кривом дизайне похвпэ
в данном случае вообще не при чем.
>> "/wp-json/wp/v2/posts/1234?id=5678helloworld", для которого значение парамера "?id=" будет иметь более высокий приоритет, чем идентификатор в пути "/1234"
это недоработка чисто вордпресовская, легко можно представить подобное в любом другом веб проекте (имею ввиду неверную расстановку приоритетов для получения значения переменной).
| |
|
3.8, Добрый анон (?), 13:15, 03/02/2017 [^] [^^] [^^^] [ответить]
| –4 +/– |
>это недоработка чисто вордпресовская, легко можно представить подобное в любом другом веб проекте (имею ввиду неверную расстановку приоритетов для получения значения переменной).
> легко можно представить подобное в любом другом веб проекте
Это напрямую и означает, что глобальные (!) супермассивы вроде $_POST и $_GET можно напрямую использовать неправильно, и более того, делать это достаточно легко! Что в свою очередь ведет к кривому дизайну самого ПХП и громадному количеству легаси-кода, который написан с подобными допущениями.
| |
|
4.34, amonymous (?), 16:47, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Это напрямую и означает, что глобальные (!) супермассивы вроде $_POST и $_GET
> можно напрямую использовать неправильно, и более того, делать это достаточно легко!
> Что в свою очередь ведет к кривому дизайну самого ПХП и
> громадному количеству легаси-кода, который написан с подобными допущениями.
А при чём тут пост и гет? Тут речь о том, что вообще произвольные строки в качестве чисел использовать нежелательно.
Блин, сколько ж лет учат криворучек валидировать весь юзеринпут. Да хоть РЕГЕКСПАМИ, да. А воз и ныне там.
| |
|
5.45, Square1 (?), 19:40, 03/02/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
смешно в этом то, что вы не посмотрели код, доверившись только пересказу новости.
а между тем, именно так там и сделали.. валидировали регекспом :)
| |
|
|
3.9, КО (?), 13:19, 03/02/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Причем тут приоритеты?
Когда в одном месте при анализе параметра _5678helloworld_ это 5678helloworld, а в другом 5678. Не удивлюсь, что id=0x162E мог себя вести аналогичным образом.
| |
|
4.12, Gemorroj (ok), 13:24, 03/02/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
js:
parseInt('5678helloworld'); //5678
---
это проблема всех динамических языков, или даже приведения типов. а не конкретно php.
| |
|
5.14, ss (??), 13:52, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Я эту ошибку отношу исключительно на счет вордпресса, поскольку гуляние параметра по разным фильтрам "авось в какойнить подойдет" - это проблема не языка программирования, а конкретного программиста наваявшего подобное...
| |
5.18, Аноним (-), 14:19, 03/02/2017 [^] [^^] [^^^] [ответить] | +5 +/– | Ну-ну CODE -- lua 5678 nil введение 1 - atom_number 5678helloworld ,X f... большой текст свёрнут, показать | |
|
6.21, Gemorroj (ok), 14:57, 03/02/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
Кстати про любимый язык анонимов с убунтой:
print 6 + "123";
> unsupported operand type(s) for +: 'int' and 'str' | |
|
7.43, Аноним (-), 18:35, 03/02/2017 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Кстати про любимый язык анонимов с убунтой:
> print 6 + "123";
>> unsupported operand type(s) for +: 'int' and 'str'
Типа, строгая типизация === зло?
[CODE]
>>> print str(6) + "123"
6123
>>> print 6 + int("123")
129
>>> myint=type('myint', (int,), dict(zip(('__add__','__radd__'), [lambda x,y: int.__add__
(x,y) if all(map(isinstance,[x,y],[int,int])) else str(x) + str(y)]*2)))
>>> '3' + myint(4)
'43'
>>> 3 + myint(4)
7
>>> 3 + myint(4) + myint(7)
14
>>> "3" + myint(4) + myint(7)
'743'
[/CODE]
| |
|
|
9.51, Аноним (-), 21:33, 03/02/2017 [^] [^^] [^^^] [ответить] | +3 +/– | Держите нас и далее в курсе ваших достижений и мы, возможно, когда-нибудь пере... текст свёрнут, показать | |
|
|
|
|
5.24, Sw00p aka Jerom (?), 15:06, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> js:
> parseInt('5678helloworld'); //5678
> ---
> это проблема всех динамических языков, или даже приведения типов. а не конкретно
> php.
пхп не ЯП сам создатель об этом говорил, забудьте про него и весь холивар про теорию типов.
| |
|
|
|
Часть нити удалена модератором |
|
|
|
|
4.15, Аноним (-), 13:54, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Это вполне себе обычное дело для языков с нестрогой типизацией. Если человек не знает этого и садится кодить на пхп или жс, то для него есть особое название - быдлoкодер. Но никоим образом это не может быть претензией к языку, который изначально создавался с нестрогой типизацией, и в котором реализация оной выполнена как надо.
| |
|
5.25, Sw00p aka Jerom (?), 15:12, 03/02/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Это вполне себе обычное дело для языков с нестрогой типизацией. Если человек
> не знает этого и садится кодить на пхп или жс, то
> для него есть особое название - быдлoкодер. Но никоим образом это
> не может быть претензией к языку, который изначально создавался с нестрогой
> типизацией, и в котором реализация оной выполнена как надо.
>>с нестрогой типизацией
нет такого понятия, ни пхперы ни джиэсники даже понятия не имеют о теории типов, более менее с этим функциональщики знакомы. Даже сишники не в курсах, потомучто ни в одной книге даже у Ричи и кернигана о типах ничего не сказано.
| |
|
6.37, Crazy Alex (ok), 17:17, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
тем не менее сишники в типах как-то не путаются. Динамика - это вообще заботливо разложенные грабли.
| |
|
7.42, Sw00p aka Jerom (?), 17:59, 03/02/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> тем не менее сишники в типах как-то не путаются. Динамика - это
> вообще заботливо разложенные грабли.
не путаются эт по какой причине ? по той, что компилятор на столько тугодум не знает в скольких ячейках памяти сохранить результат ? а динамические чем отличаются тогда ? умом, что знают об этом ? Асм-му ваще по** на ваши инты, чары, флоаты он для этого юзает "корзинки" (регистры) конкретного размера для результатов вычислений.
| |
7.78, www2 (ok), 20:54, 04/02/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Не путайте динамическую типизацию с нестрогой типизацией - это разные вещи. В Python динамическая типизация, но строгая.
| |
|
|
5.62, Led (ok), 23:29, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Если человек садится кодить на пхп или жс, то для него есть особое название - быдлoкодер.
//fixed
| |
|
|
|
|
3.63, Led (ok), 23:31, 03/02/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Дело именно в гуанокоде.
Кидаться гуанокодом - это нормальное поведение вэб-макак.
| |
|
2.67, pda (?), 01:25, 04/02/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> никто уже не использует $_GET и $_POST
Да? А чем там теперь пользуются?
| |
|
1.2, Аноним (-), 12:45, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Новости про баги вордпресса (да какие там баги, зияющие дыры) выходят так регуляно, что уже стали чем-то обычным
| |
1.6, Аноним (-), 13:00, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> молча устранена уязвимость
..., кроме того молча добавлен новый вид бекдора...
| |
1.16, Аноним (-), 14:04, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
С ошибками приведения типов бороться сложно, неявное приведение могло произойти и в MySQL. А вот то что один модуль решает, что запись с заданным id не найдена, а потом другой спокойно с ним что-то делает - это, имхо, полный бардак в архитектуре.
| |
1.17, Lolwat (?), 14:15, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Я одни делаю проверки regEx перед тем как использую значения?
И как люди пользуются WP?
Да и вообще, я видел бизнеса которые клипаю магазины и всякие веб сервисы на WP. Вот как так? Руки нужно отрубать таким девелоперам по самую шею
| |
|
2.27, angra (ok), 15:55, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Ты гордишься тем, что как обезьянка повторяешь технику без попытки осмысления?
Если мне надо проверить существует ли переданный объект, то я просто сделаю if exists $pages{$page}. Что к этому добавит проверка регексом? Если какой-то параметр должен быть числом, то зачем его пропускать через проверку регексом, если все-равно после этого он пройдет через конвертацию в число? В данном случае причина фейла не в том, что не воспользовались регексом, а в том, что одни и те же по сути проверки существуют в разных местах, разными способами и вызываются более одного раза в процессе обработки запроса.
| |
|
3.36, amonymous (?), 16:49, 03/02/2017 [^] [^^] [^^^] [ответить]
| +3 +/– |
В вёбе ВЕСЬ юзеринпут должен быть завалидирован без допущений. Независимо от языка.
| |
|
4.64, angra (ok), 01:18, 04/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
А не в вебе уже можно не заниматься валидацией? А в вебинтерфейсе "для себя" недоступном миру валидировать точно нужно? Ну и самое главное, регекс это единственный способ валидации?
| |
|
5.83, anomymous (?), 01:08, 05/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> А не в вебе уже можно не заниматься валидацией? А в вебинтерфейсе
> "для себя" недоступном миру валидировать точно нужно? Ну и самое главное,
> регекс это единственный способ валидации?
Нет, можете валидировать хоть чем, разрешаю. Главное - валидировать корректно.
| |
|
|
3.48, lolwat (?), 20:14, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Ты гордишься тем, что как обезьянка повторяешь технику без попытки осмысления?
очень даже осмысленно
>Если мне надо проверить существует ли переданный объект, то я просто сделаю if exists $pages{$page}. Что к этому добавит проверка регексом?
>>В вёбе ВЕСЬ юзеринпут должен быть завалидирован без допущений. Независимо от языка. - мудрый аноним
"if exists $pages{$page}" - очень глупо, в зависимости от реализации Hash, это может привести к коллизиям.
>Если какой-то параметр должен быть числом, то зачем его пропускать через проверку регексом, если все-равно после этого он пройдет через конвертацию в число?
B том что нужно было слать лесом запрос /wp-json/wp/v2/posts/1234?id=5678helloworld в самой ранней стадии (это конечно если id всегда Number). да и RegEx не только, что я использую - я еще все фильтрую параметры, то есть там где я не жду id, я верну тебе HTTP 400.
| |
|
4.68, angra (ok), 01:27, 04/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> "if exists $pages{$page}" - очень глупо, в зависимости от реализации Hash, это может привести к коллизиям.
Коллизия это конечно очень страшное слово, можно пугать им джуниоров, но что если тебе попадется кто-то более опытный и попросит тебя рассказать о последствиях такой коллизии? Только во взрослом ЯП, а не в какой-нибудь студенческой наивной реализации hash/map. Вдруг окажется, что единственное последствие это небольшой провал производительности.
> B том что нужно было слать лесом запрос /wp-json/wp/v2/posts/1234?id=5678helloworld в
> самой ранней стадии (это конечно если id всегда Number).
А с этим кто-то спорил? Попробуй все-таки прочитать внимательно, что именно произошло.
| |
|
5.84, anomymous (?), 01:09, 05/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
if exists $pages{$page} - не глупо, а очень глупо, поскольку скорее всего pages не существует, и page передаётся куда-то в запрос. Я не про вордпресс конкретно, я про вообще.
| |
|
|
|
2.35, amonymous (?), 16:49, 03/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Я один делаю проверки regEx перед тем как использую значения?
Ты не одинок, нет. Про остальное согласен.
| |
|
1.26, klalafuda (?), 15:51, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> осуществляется приведение переменной к целому типу и вместо "5678helloworld" передаётся значение "5678"
Ну Семен Семеныч!
И не надо мол PHP опять виноват. С таким подходом ребят никакой инструмент не спасет.
| |
1.33, freehck (ok), 16:45, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Разработчики WordPress пояснили отсутствие упоминания об исправлении
> уязвимости в анонсе тем, что они лишь придержали публикацию
> уведомления, желая дождаться пока будет установлено обновление у как
> можно большего числа пользователей, чтобы предотвратить волну атак и
> вандализма.
Какая прелесть. Совершенно обычная реакция... для нашкодившего подростка, который боится, что его засмеют или накажут.
Анонсы исправлений уязвимостей должны быть побуждающим фактором для обновления, а не наоборот. Публиковать такие вещи надо сразу же.
| |
1.40, Нанобот (ok), 17:42, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
>приведение переменной к целому типу и вместо "5678helloworld" передаётся значение "5678"
занимательная php-математика :)
| |
|
2.79, www2 (ok), 20:56, 04/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Если пэхэпэ такой прогнивший, то что юзать?
Статические HTML-сайты.
| |
|
3.80, Аноним (-), 21:47, 04/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Предлагаю вообще не пользоваться интернетом и компом. И жить в лесу.
| |
3.88, Аноним (-), 02:57, 06/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
Слез кстати с докувики на такой в своём бложеке. Доволен. Брат жив.
| |
|
2.85, anomymous (?), 01:11, 05/02/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Если пэхэпэ такой прогнивший, то что юзать?
Православный питончик же. Или рабьку. Или растик. Ну с рантаймом год по***ться придётся на каждый проект, и при апдейтах ещё. Проблем-то. Рынок же на месте стоит, конкуренции нет, можно и академично подойти.
| |
|
3.90, Фанат PHP и Wordpress (?), 09:06, 13/02/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Православный питончик же. Или рабьку.
Угу, вот только PHP 7 по производительности всухую уделывает рабьку с питончиком. Intel, к слову, сотрудничает с командой PHP, оптимизируя их процессоры конкретно под этот ЯП. Пока ребята пишут высокопроизводительные сайты, пишите свои тормозные жигули на рабьке с питончиком))
| |
|
|
1.91, Айк (?), 13:33, 22/04/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Молодцы разработчики,всегда обновляют и держат руку на пульсе,вордпресс рулит !
| |
|