(Meer uitleg onderaan in de quote !)
1. Connectie met database.
2. Je voert een randomhash en de ip adres van de persoon in de database.
3. Je stuurt diegene vervolgens door naar de ssl pagina op de andere server.
4. Eenmaal op de andere server haal je de hashkey uit de database.
5. Je vergelijkt of het ip adres nog gelijk is.
6. Laat de server doen wat ie moet doen.
7. En je stuurt degene weer terug.
_________________
http://www.ditisdenormalesite.com/test.php
<?
// Connectie
include ("connect.php");
// Functie om een random hash te creeren
function createhash()
{
$tekens=array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
$hashcode;
for($c = 0; $c < 50; $c++)
{
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$hashcode = $hashcode.$pass;
}
return $hashcode;
}
// Vars
$hashcode = createhash();
$ip = $_SERVER['REMOTE_ADDR'];
// Update database
mysql_query("INSERT INTO `Access` ( `hashcode` , `ip`) VALUES ( '$hashcode', '$ip' )") or die(mysql_error());
header ("Location: https://www.beveiligdesite.com/test.php?doeactie=nixen&hashcode=".$hashcode);
?>
Pagina waar naar verwezen wordt (ssl)
<?
$sendback = "http://**********.com";
if (isset($_GET['hashcode']))
{
// Connection
include ("connect.php");
// Get from database
$query = mysql_query("SELECT * FROM `Access` WHERE hashcode = '".$_GET['hashcode']."'");
$results = mysql_num_rows($query);
// If hashcode = none
if ($results > 0)
{
// vars en data
$ip = $_SERVER['REMOTE_ADDR'];
$conf = mysql_fetch_assoc($query);
if ($ip == $conf['ip'])
{
// They are the same so delete the row you just created
$querys = "DELETE FROM `Access` WHERE `hashcode` = '".$_GET['hashcode']."'";
mysql_query("$querys") or die(mysql_error());
// Succes, do what you want here !!
// Vericht bepaalde acties uit.
} else
// No match
{
header ("Location: $sendback");
}
} else
// No result
{
header ("Location: $sendback");
}
} else
// No hash
{
header ("Location: $sendback");
}
?>
Nou zou ik willen vragen wat jullie hier van vinden ?
__
Verhaal uitgebreid :
Verhaal:
Stel je hebt 2 locaties en 1 database.
1 locatie is een gewone connectie, de andere een beveiligde.
Je kunt alleen op de beveiligde pagina bepaalde acties uitvoeren die je niet met een normale server kan. Bijvoorbeeld met curl() spelen met andere ssl servers.
Nou kan ik niet bepaalde gegevens versturen dmv een curl of fopen omdat mijn http geen beveiligde verbinding ondersteunt.
Dus kwam ik tot de conclusie dat ik dmv een header en get variabelen aan de slag moest maar dat is redelijk met vuur spelen want dan kan iedereen gaan spelen met bepaalde acties op de ssl server.
Ik moest een manier zoeken om er voor te zorgen dat dat alleen kon als je vanaf mijn pagina geredirect bent en niet anders.
$_SERVER['HTTP_REFERRER'] leek me daarvoor te onbetrouwbaar aangezien die simpel te omzeilen is.
Dus heb ik dit verzonnen : Eerste pagina is de pagina die doorverwijst naar de pagina waarop de wijzigingen/acties plaatsvinden. Tweede is de pagina is dus dan de pagina waarna verwezen wordt.