Отслеживание использования API и соответствия GDPR

Я установил очень простой API, который предоставляет данные в формате JSON.

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

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

$ua  = $_SERVER ['HTTP_USER_AGENT'];
$ip  = $_SERVER['REMOTE_ADDR'];

// get querystring data but strip out the 'api_key' bit for recording usage in database
// https://stackoverflow.com/questions/17122563/php-remove-single-variable-value-pair-from-querystring
$qs2 = NULL;
foreach ($_GET as $keyv => $value){
if ($keyv  != 'api_key'){
$qs2 .= $keyv  . '=' . urlencode($value) . '&';
}
}

$sql = "INSERT INTO j_un_api_log (fld_date, fld_user_id, fld_ip, fld_ua, fld_qs) VALUES (now(), :user_id, :ip, :ua, :qs)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':user_id', $user_id);
$stmt->bindParam(':ip', $ip);
$stmt->bindParam(':ua', $ua);
$stmt->bindParam(':qs', $qs2);
$stmt->execute();

Однако из-за GDPR (https://eugdprcompliant.com/personal-data/) законодательство, мнение таково:

все IP-адреса должны рассматриваться как личные данные, чтобы
Совместимый с GDPR

Однако я понимаю, что это рискует стать не по теме — я думаю, что это связано с программированием, потому что я не уверен, как действовать дальше.

Если у меня есть раздел «Условия и положения», в котором говорится, что я буду хранить IP-адрес и пользовательский агент каждый раз, когда API вызывается для отслеживания использования и предотвращения злоупотреблений, и просить пользователей принять Условия и положения при регистрации, означает ли это, что я могу сохранить IP-адреса и данные агента пользователя?

Если я не могу, насколько я вижу, нет способа отследить использование, кроме простого сохранения, может быть, только идентификатора пользователя, даты и времени и строки запроса для каждого вызова.

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

Я понимаю, что мог бы создавать системы для предотвращения использования большого объема, но это базовый API, и я хотел начать с простого мониторинга того, что происходит, и получить его оттуда.

0

Решение

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

Для ограничения скорости большинство брандмауэров будут делать это с минимальными издержками (чисто по IP, а не по ID). Безопасный способ сделать это в своем приложении — проиндексировать попадания в соответствии с хешем IP и ID. Поскольку вы не можете получить обратно из исходных данных из хэша, безопасное сохранение без дополнительных предупреждений.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]