Wat er kort gebeurt :
(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.
niets gezegd ;)
Arwin schreef op 21.03.2007 20:36
link doet het niet


check het domein. Voor zover vraagt niemand eenn site aan "dit is de normale site"

of wat je dus ook bij voorbeelden ziet: "Ditisdanjesite.nl".
haha arwin de master ;) .

ik vind het zelf een goed systeem, niet voor grote aantallen (en dan heb ik het over niet meer dan 500 tegelijk) query's maar hij doet het tot nu toe perfect.

ik post het hier om te kijken of er ook hier mischien eventuele work-arrounds zijn voor kwaadwillende gebruikers, maar zo te zien vind niemand het intressant om het door te nemen.

[edit: typo]
Ik snap het niet... Je controleert een ip adres? Je controleert of een ip adres nog steeds een ip adres is?? Hoe is dit veilig? Hoe filter je nou stoute mensen?
Vertel eens wat je doel is en hoe je ernaartoe werkt, want ik snap serieus niet welk nut het heeft, wat je doet...

Dit is wat ik lees:
> Arie De Boef komt bij de kassa, je geeft hem een kaartje en stopt de kleur van zn kleren in de computer. Dan stuur je m naar kassa 2, hij laat zn kaartje zien en de kassaslet controleert de kleur van zn kleren in de computer, het klopt (allicht klopt het!!!). Nu mag ie spelen...

Wat onderscheidt de boefjes van de engeltjes?
Cervetti, het gaat om dit stukje:
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.

Daarvoor moest hij een manier vinden om het veilig te maken.
Dat begrijp ik, maar hoe is dit veilig? Je geeft iedereen een hash en stuurt iedereen door? Waarom zou de kleur van de kleren niet meer kloppen bij kassa 2???

[edit]Voor je hash functie, zie http://www.php.net/uniqid[/edit]
Misschien is het wel nodig om te checken of ze de voorgaande stappen hebben doorlopen, en zo kan je al die gegevens op die andere server weer uitlezen. Dit kan zijn omdat bijvoorbeeld sessies niet mee genomen worden naar een andere server. En mogelijk ook voor directe toegang tot de server te ontzeggen.

Dat is volgens mij de enige mogelijk beveiliging die ik me kan indenken bij dit systeem.

Reageren