I did it https://github.com/dmd2222 on 04.12.2020 at 1:14:51,12

This commit is contained in:
dmd2222 2020-12-04 01:14:51 +01:00
parent e94bb4aa82
commit b2e49c2d94
6 changed files with 491 additions and 0 deletions

View File

@ -0,0 +1,4 @@
README / Instruction:

View File

@ -0,0 +1,21 @@
<?php
//General
$is_active=true;
$only_allow_ip="";
// index.php config
//definition when will ping be old, in seconds
$old_time_definition = 60;
$create_non_exsisting_files=true;
//keyit.php config
$option_newkeydays=365; // Days until you need a new key
$filename = 'key.config';
$email_ricipiants_contacts = array("",);
$key_name = "k";
$key_length = 70;
?>

View File

@ -0,0 +1 @@
1607040433

View File

@ -0,0 +1,273 @@
<?php
/*
Copyright (c) CS-Digital UG (hatungsbeschränkt) https://cs-digital-ug.de/
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
echo "<!-- Copyright (c) CS-Digital UG (hatungsbeschränkt) https://cs-digital-ug.de/ -->";
/*
Identifier: CKrQsyvQRNJIMjZxb8JkkYoQTkJHqMI4jBcONhX1Yvsn9ZmgrFqRt9iQYNNMHYOZ6AHQhv7qFQUmBflxEe3DNMExHuVNDWFNboaIGLaaR391m8b4NApkI97ty4D8RaMG8WugCFGmeSBHwp6tS4fpay
Date: 03.12.2020
*/
echo "<!-- Identifier: CKrQsyvQRNJIMjZxb8JkkYoQTkJHqMI4jBcONhX1Yvsn9ZmgrFqRt9iQYNNMHYOZ6AHQhv7qFQUmBflxEe3DNMExHuVNDWFNboaIGLaaR391m8b4NApkI97ty4D8RaMG8WugCFGmeSBHwp6tS4fpay -->";
/*
##############################################################################################
CODING
##############################################################################################
*/
//Imports
//Check key - $_GET["key"]; is read by keyit.php
include_once("keyit.php");
//Load options
include_once("config.php");
//Check if script is active
if($is_active==false){
exit();
}
//Get vars to choose action
//load and check GET vars
$index = check_and_give_me_get_input("i"); //index
$index_value = check_and_give_me_get_input("iv"); //index_value
//check if both vars are set
if (isset($index) == false || isset($index_value)== false){
throw new Exception('GET vars index (i) and index_value (iv) are not set correctly, try it by manual.');
}else{
//run get or set
//check if they are set
switch ($index) {
case "get":
//GET
if (run_get($index_value,$old_time_definition)==true){}else{
//Error
throw new Exception('run_get function failed.');
}
break;
case "set":
//SET
if (run_set($index_value)==true){}else{
//Error
throw new Exception('run_set function failed.');
}
break;
default:
throw new Exception('GET vars index (i) and index_value (iv) are not set correctly, try it by manual.');
}
}
// Functions
//Main Functions
function run_get($index_value, $old_time_definition){
//make HTML comment
echo "<!--Getting....-->";
// generate file path
$file = "data/" . $index_value . ".txt";
//check if file exist
if (test_file_existing($file)==false){
if($create_non_exsisting_files=true){
//create new dot file
//Write timestamp in new file
write_in_file($file,"0");
}
else{
//Throw exception, user should add file
throw new Exception('index: ' . $index_value . " unknown. Please create it first.");
}
}
//Open File
$information_file = read_from_file($file);
//Get now timestamp
$date = new DateTime();
$timestamp_now = $date->getTimestamp();
//calculate time diff
$time_diff = $timestamp_now - $information_file ;
// Check if older than
if ($information_file + ($old_time_definition) < $timestamp_now){
//Last updtae is older than x time
echo "Older than " . $old_time_definition . "sec. Timediff: " . $time_diff . " sec." ;
}else{
// Last update is NOT older than x time
echo "Last update " . $information_file . "Timediff: " . $time_diff . " sec." ;
}
//Secure file
secure_file($file);
//giveback ok
return true;
}
function run_set($index_value){
//make HTML comment
echo "<!--Setting....-->";
// generate file path
$file = "data/" . $index_value . ".txt";
//Get now timestamp
$date = new DateTime();
$timestamp_now = $date->getTimestamp();
//Write update timestamp in file
write_in_file($file,$timestamp_now);
// Giveout OK
echo "OK: " . $timestamp_now ;
//Secure file
secure_file($file);
//return ok
return true;
}
// Subfunctions
function check_and_give_me_get_input($get_var_name_input){
if ((isset($_GET[$get_var_name_input])) && (!empty($_GET[$get_var_name_input]))) {
if(ctype_alnum($_GET[$get_var_name_input])==true){
//allright
return $_GET[$get_var_name_input];
}else{
// Get Var is empty
throw new Exception('GET var: ' . $get_var_name_input . " are not only numbers or letters.");
}
}else{
// Get Var is empty
throw new Exception('GET var: ' . $get_var_name_input . " is empty.");
}
}
function read_from_file($file_name){
try {
//Open File
$myfile = fopen($file_name, "r") or die("Unable to open file!:" . $file_name);
//Read File
$information = fread($myfile,filesize($file_name));
//Close file
fclose($myfile);
return $information;
} catch (Exception $e) {
throw new Exception( $e->getMessage());
}
}
function write_in_file($file_name,$text){
try {
$myfile = fopen($file_name, "w") or die("Unable to open file!:" . $file_name);
fwrite($myfile, $text);
fclose($myfile);
return true;
} catch (Exception $e) {
throw new Exception( $e->getMessage());
}
}
function test_file_existing($file_name){
if (file_exists($file_name)) {
return true;
} else {
return false;
}
}
function secure_file($file_path){
try {
chmod($file_path, 0600);
} catch (Exception $e) {
throw new Exception( "WARNING: The program was not able to secure the " . $file_path . " Errordetails:" . $e->getMessage());
}
}
?>

View File

@ -0,0 +1 @@
WTn9cYxz5PWadaVqEdki0FwhmLkjje5RXgDVTAlWdq3Uvv5hR1i0TI1AFN7Z

View File

@ -0,0 +1,191 @@
<?php
/*
Copyright (c) CS-Digital UG (hatungsbeschränkt) https://cs-digital-ug.de/
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
echo "<!-- Copyright (c) CS-Digital UG (hatungsbeschränkt) https://cs-digital-ug.de/ -->";
/*
Identifier: sj3SjMAfJDRIK5YLWkcprM1gVYjgmZuUHK1bJ5Qa96m6ARkK5hMysb5ruC4oxXYjiWNcCuYvJ7mkSKRzMKNXdiFLeoY2Wn1jYTNAGqXoqBYyu1eFrvWm3Pj7y7soMwULKDxQYiKZTs43xPDiPmVjhM
Date: 03.12.2020
*/
echo "<!-- Identifier: sj3SjMAfJDRIK5YLWkcprM1gVYjgmZuUHK1bJ5Qa96m6ARkK5hMysb5ruC4oxXYjiWNcCuYvJ7mkSKRzMKNXdiFLeoY2Wn1jYTNAGqXoqBYyu1eFrvWm3Pj7y7soMwULKDxQYiKZTs43xPDiPmVjhM -->";
//Load options
include_once("config.php");
//check file exist
if (file_exists($filename)) {
$key = $_GET[$key_name];
//open file and read it
$myfile = fopen($filename, "r") or die("keyit.php: 1 Unable to open file!");
$filekey =fread($myfile,filesize($filename));
if($key == $filekey)
{
//Right key
//Check if we need a new key (new key every 120 days)
//check if it is more than x days
$lastmodified= filemtime($filename);
//whats now daytime
$datetime = new DateTime();
$datetime = $datetime->getTimestamp();
/*** if file is 24 hours (86400 seconds) old then delete it ***/
//8035200 sek ~3 monate
//5356800 sek ~ 2 Monate
//3456000 sek ~ 40 tage
//2678400 sek ~ 1 Monat
//1209600 sek ~ 14 Tage
//864000 sek ~ 10 tage
if( $lastmodified + ($option_newkeydays*(24*60*60)) < $datetime){
//Its longer than x days, create new key
//generate new key
$newkey = createnewkeyfile($filename, $key_length );
//Send mail to recipients
$mail_subject ="Key changing: " . date("Y.m.d H:i:s");;
$mail_message="The key of the file " . getCurrentUrl() . " has changed to: " . $newkey;
sendmailtorecipients($email_ricipiants_contacts,$mail_subject,$mail_message,false);
}else{
//Key is not old enought to get changed
}
}else{
//Wrong key
header('HTTP/1.0 403 Forbidden');
echo 'keyit.php: You are forbidden!';
exit;
die;
}
}else{
//File does not exist
//Create it with key
$newkey = createnewkeyfile($filename,$key_length );
//Send mail to recipients
$mail_subject ="Key created: " . date("Y.m.d H:i:s");;
$mail_message="The key of the file " . getCurrentUrl() . " has created: " . $newkey;
sendmailtorecipients($email_ricipiants_contacts,$mail_subject,$mail_message,false);
}
//Secure file agains reading
securekeyfileagainstreading($filename);
//Funktionen / Functions
//###########################################################
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
function writeinfile($filename,$text){
$myfile = fopen($filename, "w") or die("keyit.php: 2 Unable to open file!");
fwrite($myfile, $text);
fclose($myfile);
}
function createnewkeyfile($filename, $key_length ){
//create new key
$newkey = generateRandomString($key_length);
//create new file and safe it
writeinfile($filename,$newkey);
//secure key file
securekeyfileagainstreading($filename);
return $newkey;
}
function securekeyfileagainstreading($filename){
chmod($filename, 0600);
}
function sendmailtorecipients($contacts_array,$subject,$message,$output=false){
// $contacts array
// $contacts = array("youremailaddress@yourdomain.com","youremailaddress@yourdomain.com");
//....as many email address as you need
foreach($contacts_array as $contact) {
$to = $contact;
mail($to, $subject, $message);
//Outpu of sending message
if($output == true){
echo "keyit.php: Send mail to " . $to . "with the subject " . $subject . " and the text " . $message . "... <br>";
}
}
}
function getCurrentUrl() {
return ((empty($_SERVER['HTTPS'])) ? 'http' : 'https') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
?>