Главная страница » Статьи и уроки » Страница 2
Опрос
Вы занимаетесь разработкой сайтов?

Как определить запрос из tor-сети

Автор: administrator Дата: 24-08-2018, 21:25 Категория: Статьи и уроки / PHP статьи
Для определения ip-адреса из tor-сетки можно послать запрос для A-записи, вида
<reversed ip>.<port>.<addr>.ip-port.exitlist.torproject.org
Где: reversed ip - целевой ip в DNS PTR виде (перевернутый) port - порт, на который стучится запрос от целевого адреса addr - ip-адрес, на который стучится целевой адрес Например, если мы проверяем ip 30.1.234.50, который долбится на адрес 80.10.200.30 на порт 80, то наш конечный запрос на проверку будет выглядеть так: 50.234.1.30.80.80.10.200.30.ip-port.exitlist.torproject.org В итоге, если конечный запрос долбится с tor сетки через целевой ip на определенный порт на определенный адрес, то в указанном запросе нам вернется 127.0.0.2. В противном случае вернется nxdomain.
Просмотров: 2 027 Комментариев: 0
  • Не нравится
  • +1
  • Нравится

PHP: «Умная» проверка URL-адреса

Автор: administrator Дата: 8-08-2018, 21:54 Категория: Статьи и уроки / PHP статьи
Довольно часто встречаются ситуации, когда нужно проверить на корректность URL-адрес, введенный пользователем. При этом, хорошо было бы не обременять самого пользователя вводом протокола http/https, но предоставить ему такую возможность.

То есть, «правильным» должен считаться, как URL, вида http://example.com/, так и example.com. В случае, если протокол не был указан, по умолчанию к конечному значению добавляется http://.

Создадим функцию parse_url_if_valid, которая будет принимать «сырую» строку URL, и возвращать корректный URL в том случае, если его удалось привести к должному виду. В противном случае, функция будет возвращать значение null.

В PHP есть встроенная функция parse_url, которая разбирает URL-адрес и возвращает массив с его компонентами. Воспользуемся ей для облегчения задачи и уменьшения количества рутинных операций.
Просмотров: 1 574 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

PHP: блокировка доступа к файлу. Контроль доступа во время выполнения

Автор: administrator Дата: 30-04-2018, 21:19 Категория: Статьи и уроки / PHP статьи

Блокировка файлов с ожиданием

При осуществлении файловых операций нужно учитывать возможность их параллельного выполнения. С одним и тем же файлом могут взаимодействовать различные процессы. Одни выполняют чтение, а другие записывают данные. Некоторые задачи, решаемые в PHP, требуют явного контроля над таким поведением. Например, если в настоящий момент происходит запись в файл, нужно подождать его завершения перед началом чтения. Таким образом, пользователь будет получать актуальную информацию о содержимом.
PHP имеет встроенный механизм блокировки доступа к файлам. Он реализует консультативную модель (англ. advisory locking). Это означает, что все программы, работающие с файлом, должны реализовывать один и тот же способ проверки и использования блокировок. Иначе они не будут работать.
Блокировки доступа бывают двух типов: монопольная — другие процессы не могут записывать и читать данные пока не будет снята блокировка, совместная — все процессы могут читать, но не записывать.
Для блокировки файла используйте функцию flock(). В первом параметре она принимает дескриптор файла, а во втором указывается тип блокировки. Тип можно задать с помощью встроенных констант LOCK_SH(совместная) или LOCK_EX (монопольная). Функция возвращает true в случае захвата файла или false, если произошла ошибка. flock() также отвечает и за снятие блокировки. Для этого передайте ей дескриптор файла, а во втором параметре укажите константу LOCK_UN.
Просмотров: 3 630 Комментариев: 1
  • Не нравится
  • 0
  • Нравится

PHP: загрузка файлов. Обработка и сохранение присланных данных.

Автор: administrator Дата: 30-04-2018, 21:12 Категория: Статьи и уроки / PHP статьи

Принципы загрузки файлов

Загрузка файла на сервер может быть выполнена как с помощью веб-формы, расположенной на странице сайта, так и прямым программным запросом. Для PHP-интерпретатора способ передачи файла не имеет значения. Спецификация HTTP-протокола приводит эти операции к единообразному виду.
Любой загружаемый файл будет помещен в специальную директорию для временного хранения, а связанная с ним информация добавлена в суперглобальный массив $_FILES. Если не переместить файл в другое место, после завершения скрипта произойдет его бесследное удаление. Директория временного хранения определяется настройкой upload_tmp_dir конфигурационного файла php.ini...
Просмотров: 1 301 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

PHP: права доступа к файлам. Установить их или получить значение.

Автор: administrator Дата: 29-04-2018, 19:11 Категория: Статьи и уроки / PHP статьи

Введение в права доступа

Операционные системы имеют различные политики контроля доступа к файлам. PHP не может влиять на них прямым образом. Однако интерпретатор обрабатывает системные сообщения. Например, при выполнении какой-либо операции с файлом, на которую у вас нет прав, встроенные функции перехватывают ошибки и возвращают false.
Для построения WEB-сервисов в основном используются операционные системы Linux и Windows. Их политики контроля доступа совершенно не совместимы. Тем не менее, список файловых операций остается неизменным: создание, чтение, изменение, удаление и запуск исполняемых программ. PHP имеет ряд встроенных функций, самостоятельно определяющих тип операционной системы и вычисляющих доступность прав.
Заметка!
В зависимости от логики приложения может возникнуть потребность проверки прав доступа к файлу до осуществления операции. Это позволит явным образом контролировать поведение программы, а не дожидаться ошибок.

Просмотров: 1 399 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

Запись данных в файл. Функции PHP, отвечающие за эту операцию.

Автор: administrator Дата: 29-04-2018, 18:43 Категория: Статьи и уроки / PHP статьи

Запись данных целиком

Довольно часто требуется записать информацию в файл за один раз, без открытия дескриптора и построчной обработки данных. В PHP специально для решения этой задачи есть функция file_put_contents(). Её первый параметр принимает путь до файла, а второй — строку, предназначенную для записи.
Если файл на момент вызова не существует, он будет создан. Однако для осуществления этой операции нужны права, позволяющие создавать файлы в указанной директории. Обратите внимание на то, что данная функция перед осуществлением записи затирает всё содержимое файла.
Перезаписывание файла можно отменить за счет третьего необязательного параметра. Он принимает три вида флагов, которые могут быть объединены с помощью побитового оператора «или», записываемого как вертикальная черта «|»...
Просмотров: 1 412 Комментариев: 0
  • Не нравится
  • 0
  • Нравится