Merhaba Bugün API’lerinize Auth güvenliğinde dikkat edilmesi gerekenlere bakıcaz.
<?php
$auth = "SuphiAPI";
if(isset($_GET['auth'])){
if($_GET['auth'] == $auth){
// Buraya API Kodlarınızı Yazınız.
}else{
echo "Yanlış Auth Code";
}
}else{
echo "Auth Kodu yazmayı unutmayınız.";
}
Evet Gördüğünüz üzere bu yöntem çoğu apilerde kullanılıyor.
Fakat burda auth kodunun yayılması durumunda API’nizi herkesin kullanma anlamına geliyor.
Bu yüzden IP Koruma sistemi getirmelisiniz.
Bölyece API url veya auth kodunuz yayılsa bile IP koruması olduğundan dolayı kimse çalıştıramıyacaktır.
Kod;
<?php
$ip = $_SERVER['REMOTE_ADDR'];
//$izin = "::1";
$izin = "Müşterinin IP ADRESI";
if($ip != $izin){
echo "Bad Request";
}else{
//api kodları buraya
}
Burda da dikkat edilmesi gereken husus karşı tarafın size vereceği IP adresi bir proxy e ait olmaması lazım.
2. Yöntem Token sistemi ile Useragent Gönderimi.
Bu yöntemin olayı da şu izin verilen IP Adresine başka ip adresleri sorgu atıp birden fazla kullanıma sebep veriyor ise burda her istekten dönen cevaba BirSonrakiToken: diye bir değer belirtin ve bu değeri diğer sorguda isteyin.
<?php
$authID=$_GET['auth'];
$authid2 = htmlspecialchars($authID);
$sorgu = $mysqli->query("select * from tokens where MusteriID='".$authid2."'")->fetch_object();
$ip = $_SERVER['REMOTE_ADDR'];
//$izin = "::1";
$izin = $sorgu->IP;
if($ip != $izin){
if($_SERVER["HTTP_USER_AGENT"] != $sorgu->TOKEN){die("Bad Request");}
}else{
echo "Farklı IP";
}
Müşteri UserAgent Kısmına bir sonraki sorguda kullanacağı tokeni yazdırıp request attırması gerekiyor.
Böylece UserAgent Kısımında da check ettirmiş oluyorsunuz.
Bunlar sizi Gayet İyi Korucaktır.
Bir Cevap Yazın