Можно придумать какую-нибудь структуру в ЧПУ, по типу /модуль/функция/параметры/параметры/...
На основании этого решать что делать в коде.
Либо изначально жестко задать в RewriteRule различные варианты.
POST/GET обрабатываются точно так же, как и до ЧПУ.
Вы делаете
rewrite .* index.php?params=$1 break
Тогда в $_GET['params'] будет строка типа '/user/showProfile/4', которую вы можете без труда распарсить, а какие-нибудь параметры, типа '/user/showProfile/4?debug=1' будут в $_GET['debug'] отдельно, соотвественно.
В совсем простых случаях делают URL типа /page/страница/параметры. "Страница" выдирается при помощи RewriteRule, затем в коде index.php делается include соотвествующего PHP файла, например, "/page/products/12" - подключается products.php, в котором код уже разбирается что такое 12, которое в том же RewriteRule помещается в GET-параметр params:
Romka_Kharkov: Glueon и не выполнится system_command .......
А теперь читаем пост номер 2 .... файл создать может КТО угодно в системе , а mod_evasive в этом случае .... зажует морковку :D
Стало быть в таком положении дел любой локальный юзер может по факту "отключить" блокировку по CMD путем создания файлика в /tmp :)
Да, не обратил внимания ... Если это убрать или переместить этот кусок - непонятно будет заблокирован ли уже IP или нет. Я так понимаю это сделано именно из этих побуждений :)
Меняем log_dir на root-only доступную директорию и все будет нормально. Не пойдет разве?
Почитал код. Получается если filename НЕТ он создается.
Если файла нет - возвращается -1, который интепретируется как true и мы попадаем в ветку с логированием, отправкой почты. Если файл есть - ничего не происходит.
Какого эффекта хотим достигнуть? :)
Если вы руками создали файл - результат проверки все равно будет HTTP_FORBIDDEN, но в лог это не выведется ("Blacklisting address...") и почтовое сообщение не пошлется.
Pilat: Вот я не понял в чём предложение, если серые адреса везде.
Я просто предложил сделать на сервере client1.conf и client2.conf, у каждого клиента по conf'у.
У первого клиента сделать, например, "ifconfig 10.0.0.6 10.0.0.5", у второго "ifconfig 10.0.0.10 10.0.0.9".
На серверных client1.conf и client2.conf IP, соотвественно, наоборот.
Ну что можно добавить в плане пинга, если он четыре раза маршрут проходит...
Разница будет видна при нагрузке. В таком случае смена tcp на udp визуально видна на пинге.
---------- Добавлено 27.07.2013 в 01:36 ----------
netwind: элементарно : nat в удачной конфигурации работает в обе стороны и в некоторых случаях перенаправляет не только ответные пакеты от изначального адреса назначения, но и пакеты от любых адресов, в том числе от противоположного конца VPN. Он же знает куда внутри их направить, а больше ничего и не нужно. Удачно ли работает нат у ТС не известно. Да ему и все равно.
Все равно не понимаю всей высоты элементарности :) Мой вопрос относился к той ситуации, когда серверов всего два и есть только SNAT: 192.168.0.10 -> SNAT -> ... интернет ... <- SNAT <- 192.168.0.11.
Как тут организовать openvpn туннель если DNAT-а нет?
Пробовали искать eval'ы с base64_decode? Простой grep на JS ссылку точно ничего не даст. Если шелл есть, то наверняка ужат с помощью base64 и сидит где-нибудь очень глубоко.
Можно придумать какую-нибудь структуру в ЧПУ, по типу /модуль/функция/параметры/параметры/...
На основании этого решать что делать в коде.
Либо изначально жестко задать в RewriteRule различные варианты.
POST/GET обрабатываются точно так же, как и до ЧПУ.
Вы делаете
Тогда в $_GET['params'] будет строка типа '/user/showProfile/4', которую вы можете без труда распарсить, а какие-нибудь параметры, типа '/user/showProfile/4?debug=1' будут в $_GET['debug'] отдельно, соотвественно.
В совсем простых случаях делают URL типа /page/страница/параметры. "Страница" выдирается при помощи RewriteRule, затем в коде index.php делается include соотвествующего PHP файла, например, "/page/products/12" - подключается products.php, в котором код уже разбирается что такое 12, которое в том же RewriteRule помещается в GET-параметр params:
Но надо быть в таких участках очень осторожным и проверять параметр после page, чтобы злоумышленик не мог в итоге заинклудить что угодно.
Через zopros3 и zopros4 могли вбросов понаделать уже ....
Glueon и не выполнится system_command .......
А теперь читаем пост номер 2 .... файл создать может КТО угодно в системе , а mod_evasive в этом случае .... зажует морковку :D
Стало быть в таком положении дел любой локальный юзер может по факту "отключить" блокировку по CMD путем создания файлика в /tmp :)
Да, не обратил внимания ... Если это убрать или переместить этот кусок - непонятно будет заблокирован ли уже IP или нет. Я так понимаю это сделано именно из этих побуждений :)
Меняем log_dir на root-only доступную директорию и все будет нормально. Не пойдет разве?
Почитал код. Получается если filename НЕТ он создается.
Если файла нет - возвращается -1, который интепретируется как true и мы попадаем в ветку с логированием, отправкой почты. Если файл есть - ничего не происходит.
Какого эффекта хотим достигнуть? :)
Если вы руками создали файл - результат проверки все равно будет HTTP_FORBIDDEN, но в лог это не выведется ("Blacklisting address...") и почтовое сообщение не пошлется.
Вот я не понял в чём предложение, если серые адреса везде.
Я просто предложил сделать на сервере client1.conf и client2.conf, у каждого клиента по conf'у.
У первого клиента сделать, например, "ifconfig 10.0.0.6 10.0.0.5", у второго "ifconfig 10.0.0.10 10.0.0.9".
На серверных client1.conf и client2.conf IP, соотвественно, наоборот.
Разница будет видна при нагрузке. В таком случае смена tcp на udp визуально видна на пинге.
---------- Добавлено 27.07.2013 в 01:36 ----------
элементарно : nat в удачной конфигурации работает в обе стороны и в некоторых случаях перенаправляет не только ответные пакеты от изначального адреса назначения, но и пакеты от любых адресов, в том числе от противоположного конца VPN. Он же знает куда внутри их направить, а больше ничего и не нужно.
Удачно ли работает нат у ТС не известно. Да ему и все равно.
Все равно не понимаю всей высоты элементарности :) Мой вопрос относился к той ситуации, когда серверов всего два и есть только SNAT: 192.168.0.10 -> SNAT -> ... интернет ... <- SNAT <- 192.168.0.11.
Как тут организовать openvpn туннель если DNAT-а нет?
Либо мы о разных вещах говорим.
То же самое на PHP:
Ну,. например адалт может быть в принципе не запрещен, но всякие Zoo и CP - да.
Если сделали с третьей node-ой, то да, все верно.
Мое предложение с p-t-p тоже рабочее, но тогда будет два туннеля - по одному для каждой ноды.
Удобно смотреть на трафик, так как у каждой свой tun, но в данном примере, возможно, смысла нет.
В плане пинга можно еще поэксперементировать с UDP, fast-io. Может чего добавит.
За одну минуту могли сделать вброс в другое место, которое айболитом вы еще не видели :) Да и само наличие вброса должно насторожить.
"zapros1" - это конечно да. Взяли, сразу свою RUпринадлежность выдали :)
Пробовали искать eval'ы с base64_decode? Простой grep на JS ссылку точно ничего не даст. Если шелл есть, то наверняка ужат с помощью base64 и сидит где-нибудь очень глубоко.