Zo ziet de code van het systeem er ongeveer uit:
API Client:
<?php
// API Content
if (isset($_POST['username']) && isset($_POST['password'])) {
// Encrypted Post Fields
$username = base64_encode($_POST['username']);
$password = base64_encode(sha1($_POST['password']));
$ip_adress = base64_encode($_SERVER['REMOTE_ADDR']);
// PHP Curl
$ch = curl_init($api_server);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_key=' . $api_key . '&website=' . $_SERVER['HTTP_HOST'] . '&username=' . $username . '&password=' . $password . '&ip_adress=' . $ip_adress);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$re = curl_exec($ch);
curl_close($ch);
// Handle Data
$api_content = explode('|', $re);
if (empty($api_content[10])) {
echo $re;
} else {
$data1 = $api_content[0];
// enz enz
}
} else {
// Hier het formulier om in te loggen
}
?>
API Server:
De code hiervan komt niet online te staan, hieronder staat informatie die mij belangrijk lijkt om in te schatten of mijn systeem veilig is:
- Iedere query die door de database word uitgevoerd is beveiligd met de volgende functie:
<?php
// Mysql Injection
function clean_input($query) {
$query = stripslashes($query);
$query = strip_tags($query);
$query = trim($query);
return mysql_real_escape_string($query);
}
?>
- Het wachtwoord ziet er ongeveer zo uit:
<?php
$password = md5(($salt . $_POST['password']) . $salt);
?>
- De API code word gecontroleerd met de database, net zoals die website die gebruikt maakt van de API Client
- De data word uit de database 'ge-echo-ed' (onbeveiligd)
- De server maakt een logbestand met: ip adres gebruiker, ip adres website, api key, query, tijd, datum
Alvast bedankt!