Manuelf: Webserver- Zugriff schützen

Beitrag lesen

Hallo,

leider ist mir zu diesem Thema kein besserer Titel eingefallen.

Genau genommen geht es um mein Smart- Home, welches ich gerade einrichte.

Ich habe auf meiner Synology NAS die Surveillance Station eingerichtet und habe nun ein PHP Skript geschrieben welches mir ermöglicht meine Kameras, durch aufrufen des Skripts, zu aktivieren oder deaktivieren.

Das ganze würde ich gerne über eine Geolocating App auf meinem Handy verknüpfen damit die Kameras beim Verlassen des Hauses automatisch eingeschaltet werden und beim Betreten des Hauses automatisch wieder deaktiviert werden.

Damit das ganze allerdings mit der App am Handy funktioniert müsste ich diese PHP Datei über eine Portweiterleitung zu meiner NAS ins Internet freigeben. Dazu möchte ich das ganze allerdings etwas absichern, denn sonst könnte ja jeder der die genaue Adresse weiß die Kameras ein- und ausschalten.

Könnt Ihr mir vielleicht dabei weiterhelfen und sagen wie Ihr das am Besten lösen würdet? Von den PHP Kenntnissen her sieht es bei mir allerdings nicht so berauschend aus ;)

Dies wäre meine derzeitige Datei:

<?php
//Authentication
$json = file_get_contents('https://10.1.1.10:4444/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=BENUTZERNAME&passwd=PASSWORT&session=SurveillanceStation&format=sid');
$obj = json_decode($json, true);
$sid = $obj["data"]["sid"];
 
//GetList
$json = file_get_contents('https://10.1.1.10:4444/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=List&version=3&_sid='.$sid);
$obj = json_decode($json, true);
$cam_activated = $obj["data"]["cameras"][0]["enabled"];
 
if($cam_activated == false){
	//Activate cam
	$json = file_get_contents('https://10.1.1.10:4444/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=Enable&version=3&cameraIds=1&_sid='.$sid);
	echo "<div class=\"centered\"><img src=\"https://10.1.1.10/on_icon.png\" style=\"width:auto;height:auto;\" /></div>";
} 
else
{
	//Deactivate cam
	$json = file_get_contents('https://10.1.1.10:4444/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=Disable&version=3&cameraIds=1&_sid='.$sid);
	echo "<div class=\"centered\"><img src=\"https://10.1.1.10/off_icon.png\" /></div>";
}
?>
 
<style type="text/css">
.centered {
  position: fixed;
  top: 40%;
  left: 40%;
}
</style>

Liebe Grüße Manuelw