|
|
|
| Вот пришел в маленькое замешательство по поводу подключения файлов. На одном из авторитетных учебных сайтов, в частности для меня, адрес http://irbis-team.com/15/10/2, прочитал следуещее:-
Второе. Путь нужно указывать явно. Если считаем от корня сайта, то так: './path/file.php'; И хотя демократичный PHP прощает такие неточности, злоупотреблять не по-христиански.
Четвертое. Литеральные константы (в миру - строки) лучше обрамлять апострофами, а не кавычками. Ибо они быстрее и читабельнее.
..........
Не нужно лениться. Не нужно пользоваться short-тегами. Их вообще скоро выведут из употребления, так как они пересекаются с XML. Писать нужно только так: <?php
Ну и коль скоро зашла речь о них, то закрывающий значек в конце файла PHP ?> нельзя ставить ни в коем случае. Это не просто вредно, но и опасно.
Объясню, чтоб не быть голословным.
1. После него может оказаться пробел или перенос строки. А так, как файл подключен выше доктайпа, значит и пробел вылезет туда. А это гарантированно угробит верстку в IE.
2. Всё, что написано после него, интерпретируется как HTML. А это значит, что (не дай Бог) в конец файла попадет вирус, то он сработает.
А тупые боты именно туда норовят прописать всякую гадость. Так вот, ежели его (закрывающего значка) не будет, то вирь попадет в тело php и вызовет ошибку. Плохо конечно, но лучше, чем бы он сработал у клиента.
Теперь другие авторитетные источники, снова повторюсь для меня, таких авторов как Максима Кузнецова, Игоря Симдянова. Пишут так:-
и все включаемые файлы заканчивают закрывающим значком PHP "?>". И путь не от корня.
Для меня как для студента это стало камнем преткновения, тем более вопрос затрагивает безопасность, как говорится на сайте.
Можно еще что найти, но пока хотелось бы узнать мнение экспертов по этим вопросам, если можно по всем.
P.S. Если я конечно все не напутал. | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 11:17)
| | у меня цитата в экран не лезет по горизонтали.
Вам не икается сейчас? | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2010 в 11:21)
| | А я то и думаю чего икота напала на меня :)). Я видел, но честно сказать, не знаю как исправить. Простите меня грешнова. | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 11:32)
| | Бог Модератор простит исправит. Если захочет.
| |
|
|
|
|
|
|
|
для: Trianon
(08.09.2010 в 11:55)
| | Ну, а по поводу вопроса все таки, что скажите? | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 12:01)
| | Что я с удовольствием послушаю представителей обеих упоминаемых сторон :)
Благо на форум они заходят.
Вообще же поднятые вопросы, по-моему, более относятся к стандартам кодирования, которых на вкус и цвет ... кругом враги. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2010 в 12:11)
| | Мне хотелось бы здесь услышать как надо. Я думаю, раз вопрос стоит о безопасности
(если верить источнику) - это по поводу закрывающего знака в подключаемом файле.
Тем более автор пишет о существенной дыре при таком использовании.
Объясню, чтоб не быть голословным.
1. После него может оказаться пробел или перенос строки. А так, как файл подключен выше
доктайпа, значит и пробел вылезет туда. А это гарантированно угробит верстку в IE.
2. Всё, что написано после него, интерпретируется как HTML. А это значит, что (не дай Бог) в
конец файла попадет вирус, то он сработает.
А тупые боты именно туда норовят прописать всякую гадость. Так вот, ежели его (закрывающего
значка) не будет, то вирь попадет в тело php и вызовет ошибку. Плохо конечно, но лучше, чем бы он сработал у клиента.
|
И по поводу кавычек тоже они интерпретируются по разному. Сказывается это на безопасности или только на скорости обработки?
Что касается относительного пути, я так думаю, то тут согласен. Тут можно сказать так Кто ка хочет так... извращается. | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 12:25)
| | >и все включаемые файлы заканчивают закрывающим значком PHP "?>".
Анекдот вспомнился...
Идет шахид, а в переди него жена. Его спрашивают - ты чего Коран нарушаешь? Жена всегда позади должна идти. А он - когда Коран писали - мин ещё не было. | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 12:25)
| | Так вот, ежели его (закрывающего значка) не будет, то вирь попадет в тело php и вызовет ошибку.
что мешает вирусу добавить себя с закрывающим РНР тегом? | |
|
|
|
|
|
|
|
для: Valick
(08.09.2010 в 12:38)
| | Мешает то, что ботом это не пердусмотрено. По крайней мере я пока еще не встречал таких. Может поумнеют, тогда будет не актуально.
А руками, если есть доступ к ФС можно что угодно прописать, тут этот значек ни на что не влияет. | |
|
|
|
|
|
|
|
для: Valick
(08.09.2010 в 12:38)
| | Так с закрывающем тегом он тоже попадет только сработает как HTML и тогда якобы капец,
а вот если тега не будет он сработает как PHP и тогда вызовет просто ошибку, я так понял.
Получается что без тега (?>) более безопасно. Хотелось бы узнать так на самом деле? | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 13:09)
| | Кто мешает попробовать? | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 13:09)
| | а вот если тега не будет он сработает как PHP
с какого хрена?
?>
я долбаный вирус, вот мое ХТМЛ тело
а в начале себя я добавил закрывающий тег ПХП
для особо одаренных админов, которые таким придурошным
способом хотят от меня избавиться
|
| |
|
|
|
|
|
|
|
для: Valick
(08.09.2010 в 14:24)
| | Часто такие долбаные вирусы попадаются? Я повторюсь - не встречал. Обычно такие:
я тупой вирус. Надеюсь на то
что прописываюсь в ХТМЛ тело,
потому что старательные кодеры самозабвенно
закрывают файлы
|
Ну даже если и есть такие одаренные, остальные то не пролезут. | |
|
|
|
|
|
|
|
для: Николай2357
(08.09.2010 в 14:34)
| | старательные кодеры самозабвенно
старательные кодеры, закрывают дыры, чтобы вирус при всем желании не смог прописаться
а вот расслабляться без закрывающего тега рановато.
намек ясен? | |
|
|
|
|
|
|
|
для: Valick
(08.09.2010 в 14:43)
| | Намек не ясен.
Почему рано? И зачем вообще напрягаться? Какая польза от него?
Кстати, стиль кодирования, принятый ZEND, недвусмысленно отзывается об этом значке
For files containing only PHP code, the closing tag must always be omitted
|
И хоть я не поборник этого стиля, тут с ним полностью солидарен.
Зачем привыкать к плохому?
PS Это дыра, которую старательный кодер заткнуть не в состоянии. Пароли угоняются не у него. А вот хоть что то сделать в этом направлении может. | |
|
|
|
|
|
|
|
для: Николай2357
(08.09.2010 в 14:48)
| | найдите предложение где Zend говорит о защите от вирусов при помощи отсутствия закрывающего тега
при угнанных паролях вообще ничего не поможет, так что не будем о паролях | |
|
|
|
|
|
|
|
для: Valick
(08.09.2010 в 15:13)
| | А причем тут Zend и вирусы? Я ничего про это не говорил. Я говорил про рекомендации не ставить этот значек.
Не знаю, чем они руководствовались при разработке стиля, но не просто так же на этом акцентировались. Значит есть причины.
Я лично вижу две, и причем вполне достаточные, чтобы забыть об этом значке и не вспоминать никогда. Есть доводы в защиту?
А при угнанных паролях очень даже помогает. Так что надо об этом. Вирусы прописывает бот, ему некогда разбираться - есть значек или нет. Пишет вирус и отваливает.
По крайней мере уже несколько раз мне говорили спасибо за такую рекомендацию. Именно по этому поводу. | |
|
|
|
|
|
|
|
для: Николай2357
(08.09.2010 в 15:26)
| | Вирусы прописывает бот, ему некогда разбираться - есть значек или нет.
Вот именно добавил бот закрывающий тег и плевать ему с высокой колокольни есть он там в файле или нет. Кто говорил про разбираться? | |
|
|
|
|
|
|
|
для: Valick
(08.09.2010 в 15:43)
| | Не добавил.
Не добавляют почему то. Дырявые боты значит. Нужно пользоваться их дырами. | |
|
|
|
|
|
|
|
для: Николай2357
(08.09.2010 в 16:03)
| | гоните его... придут нормальные и сделают свое грязное дело :) | |
|
|
|
|
автор: ..... (08.09.2010 в 15:29) |
|
|
для: Николай2357
(08.09.2010 в 14:48)
| | это не стандарт кодирования, это стандарт кодирования в zend framework
framework.zend[.]com/manual/ru/coding-standard.php-file-formatting.html#coding-standard.php-file-formatting.general
[.] == . | |
|
|
|
|
|
|
|
для: .....
(08.09.2010 в 15:29)
| | А я про что?
И вообще это не стандарт. Это рекомендуемый стиль. | |
|
|
|
|
|
|
|
для: Николай2357
(08.09.2010 в 15:38)
| | Ну все понятно, что не чего не понятно. В общем единого стандарта нет.
Я думал этот случай относится к правилу как можно делать, а как нельзя.
А это получается кто как привык. Захотят ломануть и так поломают. Ломать не строить. | |
|
|
|
|
|
|
|
для: magic
(08.09.2010 в 17:23)
| | Самая хорошая защита - отключить сервер от питания и закопать на 3-х метровую глубину. И то это не 100% вариант.
Конечно поломают, если оставлять лазейки.
Правда этот значек (вернее его отсутствие) не относится к средствам защиты. Так, мелкая профилактика. | |
|
|
|