Стажер, работающий в индийской неправительственной организации - Помощь с PHP 4, консультирование персонала - PullRequest
2 голосов
/ 30 апреля 2010

В течение последних трех месяцев я работал в одной из индийских неправительственных организаций, занимаясь добровольческой работой на местах, а также пытался улучшить их веб-сайт, который требует тонны работы. Недавно я пытался исправить кнопку «подписаться на рассылку», которая не работает. Я использовал filter_var для фильтрации ввода электронной почты, но когда я попытался проверить это, я получил ошибку. Затем я узнал, что веб-хостинг все еще использует php версии 4.3.2 и включен register_globals.

Я уже упоминал, что они должны обновить свой веб-хостинг раньше. Это усложнит работу ИТ-персонала из 3 человек, которому придется обновлять информацию электронной почты каждого (я полагаю, это организация из 250 человек), и я найду нового веб-хостинга и научу его этому. Персонал не настолько искушен в использовании веб-сайтов - главный менеджер по-прежнему использует IE6, а веб-сайт выложен в виде таблиц (они используют Dreamweaver WYSIWYG для размещения страниц).

Итак, у меня есть два варианта - использовать регулярные выражения для фильтрации электронной почты, в которых я не очень разбираюсь (и после того, как я уйду, я буду более уязвим к эксплуатации), отключить глобальные переменные регистра и затем попытаться научить сотрудники, что я делаю, или попробуйте заставить их обновить свои версии PHP и MySQL и / или сменить веб-хостинг. Буду признателен за несколько советов.

Спасибо за вашу помощь, Kevin

Ответы [ 4 ]

1 голос
/ 30 апреля 2010

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

Тогда я бы поговорил с айтишниками. Они должны обновить свой веб-пакет в какой-то момент, и этот момент уже давно пройден. PHP 4.3.2 out и больше не поддерживается (см. здесь ). Это означает, что в случае обнаружения уязвимости не гарантируется получение исправления (хотя это все еще весьма вероятно из-за количества хостов, которые еще не переключились).

Лучше переключиться сейчас, чем позже.

Из вашего описания не совсем ясно, как люди в организации используют электронную почту (у них есть свои почтовые клиенты? Они используют веб-почту), но если они используют свои собственные почтовые клиенты, проблема «единственного» будет перемещать почтовые ящики на новый хост.

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

0 голосов
/ 30 апреля 2010

Стандартное регулярное выражение для проверки соответствия RFC822 ОЧЕНЬ ужасно:

/^(?:[A-Za-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/

из http://www.regular -expressions.info / email.html (надеюсь, оно будет вырезано / вставлено нормально).

Но реализация этого лишь замедлит вашу боль. Веб-хост, все еще живущий в register_globals = on дней, должен быть удален как можно скорее. Это просто попрошайничать.

0 голосов
/ 30 апреля 2010

Если безопасность является реальным большим делом, то вам нужно ввести слой для борьбы с вторжением. Есть несколько вариантов в PHP земле, но все они требуют> 5.1.4. Поэтому я бы посмотрел на установку mod_security, если на уровне веб-сервера работает Apache. Таким образом, ваше приложение будет защищено не только от POST-инъекций, но и от GET-инъекций и от COOKIE. Во-вторых, это подтвердит заявку в будущем, если на следующей неделе они добавят другую форму без вашего ведома.

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

Удачи.

0 голосов
/ 30 апреля 2010

Что бы я сделал: - решите вашу главную проблему как можно скорее: проанализируйте электронную почту с помощью регулярных выражений, вы можете легко найти некоторые с помощью Google - Обсудите с командой обновление / перенос вашего хоста. Решение проблемы с электронной почтой в первую очередь позволяет вам не торопиться с этим вопросом.

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

...