Опрос
Вы занимаетесь разработкой сайтов?

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

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

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

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

Сохранения пользовательских настроек и настроек приложения в WinForms на C#

Автор: administrator Дата: 30-01-2015, 18:07 Категория: Статьи и уроки / C# статьи
До использования .NET Framework, настройки приложения сохранялись в INI-файлах и реестре Windows. Но в .NET Framework появились гораздо более простые способы работы с XML-файлами. Этот файл называется .exe.config и находится внутри папки приложения. Такой способ лучше, потому что, когда приложение будет деинсталированно или удалено, конечному пользователю не придется беспокоиться об оставшихся ключах реестра или INI файлов в каталоге Windows.

Каждая настройка имеет четыре свойства: имя, тип, значение и область видимости. Тип может быть типом данных или объектом. Настройка может быть доступна пользователю или приложению. Основное различие между ними заключается в том, что настройки с областью видимости на уровне приложения будут доступны только для чтения во время выполнения, в то время как настройки с пользовательской областью видимости доступны и для чтения и для записи во время выполнения программы.
Просмотров: 3 056 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

Включаем SFTP Chroot и файловый менеджер в VestaCP

Автор: administrator Дата: 29-01-2019, 02:57 Категория: Настройка сервера
Кто пользуется панелью VestaCP знает, что там есть платные плагины. В этой статье расскажу как активировать файловый менеджер и SFTP Chroot в панели бесплатно

1. Первым делом подключаемся по SSH к серверу через root.

2. Открываем файл конфигурации панели с помощью команды:

sudo nano /usr/local/vesta/conf/vesta.conf
или
mcedit /usr/local/vesta/conf/vesta.conf

В самом конце файла добавляем:

FILEMANAGER_KEY='mykey'
SFTPJAIL_KEY='mykey'


3.Открываем для редактирования следующий файл:

sudo nano /usr/local/vesta/bin/v-activate-vesta-license
или
mcedit /usr/local/vesta/bin/v-activate-vesta-license

Находим там следующие строки:

# Activating license
v_host='https://vestacp.com/checkout'
answer=$(curl -s $v_host/activate.php?licence_key=$license&module=$module)
check_result $? "cant' connect to vestacp.com " $E_CONNECT

Комментируем каждую строку (в начале строки поставте #) и добавляем еще одну
answer=0


Должно получиться так:

#Activating license
#v_host='https://vestacp.com/checkout'
#answer=$(curl -s $v_host/activate.php?licence_key=$license&module=$module)
#check_result $? "cant' connect to vestacp.com " $E_CONNECT
answer=0
Просмотров: 3 035 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

Реализация ECB шифрования с помощью библиотеки Маршала в языке С#

Автор: administrator Дата: 12-03-2016, 00:11 Категория: Статьи и уроки / C# статьи
Режим ECB — метод применения блочного шифра, позволяющий преобразовать последовательность блоков открытых данных в последовательность блоков зашифрованных данных. Более точно вы сможете узнать на Википедии. Я же перейду сказу к сути вопроса.

К примеру у нас есть файл, который нужно зашифровать. Первое что приходит на ум: должна быть функция, которая в качестве аргумента принимает файл или путь к нему.
Просмотров: 3 008 Комментариев: 0

Измерение напряжения 220 вольт на Arduino

Автор: administrator Дата: 8-09-2018, 17:50 Категория: Arduino / Начинающим Ардуинщикам

Измерение напряжения бытовой сети с помощью трансформатора и делителя напряжения на Arduino.

Что нам понадобиться:
1. Понижающий трансформатор 220/~7 вольт.
2. Диодный мост (4 диода).
3. 2 резистора (т.к у меня выходное напряжение 7 вольт я использую 2 одинаковых резистора по 50 кОм).
4. Конденсатор электролитический (главное чтобы номинал был больше чем выходное напряжение трансформатора ).
Просмотров: 2 962 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

Как спрятать версию веб-сервера

Автор: administrator Дата: 5-08-2015, 00:13 Категория: Настройка сервера
По умолчанию Веб-серверы в заголовках отдают свой тип, а также версию. Эту информацию могут использовать хакеры, чтобы начать целенаправленные атаки. Кроме того, если версия вашего веб-сервера имеет известную уязвимость, то хакер может воспользоваться готовым эксплоитом.

Пример «информативных» заголовков веб-сервера:


HTTP/1.1 200 OK
Date: Thu, 24 Jun 2014 23:55:01 GMT
Server: Apache/2.2.21 (Win32) PHP/5.4.7
Content-Length: 30643
Connection: close
Content-Type: text/html; charset=UTF-8
Просмотров: 2 932 Комментариев: 0
  • Не нравится
  • 0
  • Нравится