login  Naam:   Wachtwoord: 
Registreer je!
 Forum

externe forms onmogelijk maken...

Offline vinTage - 09/03/2006 21:34 (laatste wijziging 09/03/2006 21:36)
Avatar van vinTageNieuw lid Ik ben voor dit een oplossing aan het maken, en die heb ik grotendeels al wel...

Maar met mijn oplossing kan je nog wel achter de url komen die ge-echoed word ALS je dmv een form met als actie "mijn" php gebruikt en de juiste var post.

Ik wil dus voorkomen dat er via een andere locatie een form gepost kan worden.

Een check via $_SERVER['HTTP_REFERER'] gaat me niet lukken omdat ik wel wil dat er ge-echoed word, ook al is er geen refer.(en bovendien wil ik geen onnodige redirect oid maken om de refer juist te krijgen)

Nu heb ik mn "veilige" flash zo gemaakt dat die een var output naar die php, als die var goed is dan echoed die php de link naar het te laden bestandje. (so far so goed en alles werkt perfect)....
Maar je kan dus die var ook via een extern form laten verschijnen (als je de swf openbreekt en de var uit de flash neemt)....

Iemand een idee hoe ik dit kan voorkomen ?

Ik hoop dat jullie mijn verhaal snappen, ikzelf heb het er wel moeilijk mee in ieder geval 

Thx alvast.

edit: mn php code(tje)
  1. <?
  2. if($_POST['waarde'] == "geheim") //deze var stuurt flash dus
  3. {
  4. echo "iets belangrijks";
  5. }
  6. else
  7. {
  8. echo "je probeert de zaak te neppen";
  9. }
  10. ?>

33 antwoorden

Gesponsorde links
Offline xSc - 09/03/2006 21:40
Avatar van xSc Onbekend Ik begrijp je verhaal gedeeltelijk. Kun je de URL niet gecodeerd meesturen (bijv. MD5) en dat je die URL ook in je db zet?

Of alleen het id'tje meesturen en dan 'binnenin' alles opvragen, zodat 'niemand het ziet'.
Offline vinTage - 09/03/2006 21:44
Avatar van vinTage Nieuw lid Het nadeel van flash en php is dat de php de waardes echt moet echoen om ze te passen naar de swf toe, maw, als je een extern form gebruikt en die flash variabel post dan zie je de "belangrijke" var gewoon in beeld.

Dat van die gecodeerde url moet ik even heel hard over nadenken.
Offline xSc - 09/03/2006 21:52
Avatar van xSc Onbekend Tja, ik weet erg weinig van Flash. Ik reikte maar wat algemene zaken aan. Maar als je per se moeten echoën, wordt het lastig ...
Offline vinTage - 09/03/2006 21:56 (laatste wijziging 09/03/2006 21:56)
Avatar van vinTage Nieuw lid Het gaat me ook niet om de flash, maar om het voorkomen van het posten via externe forms
(mischien had ik deze vraag beter onder "overig" gezet?)
Offline Rens - 09/03/2006 21:58
Avatar van Rens Gouden medaille

Crew algemeen
Ikzelf heb het anders opgelost, het is geen super oplossing maar het is wel effectief.
Wat je doet:
Je zet een sessie tegelijk met het weergeven van een formulier.
Bij het versturen controleer je of de sessie geset is.
Zo niet, geef je een error dat het formulier van de verkeerde pagina is verstuurd.
Zo wel, dan ga je de formulierafhandeling doen, en je unset de sessie zodat je hem ook tegelijk maar 1 keer kan versturen.
Dus als je daarna op F5 drukt, bestaat de sessie niet meer (die heb je al ge-unset) dus krijgt de bezoeker een error dat de sessie niet meer bestaat.
Na het unsetten van de sessie ga je je gegevens controleren en afhandelen.
Offline xSc - 09/03/2006 21:59
Avatar van xSc Onbekend Ah, oke, ja. Wat je ook kunt doen, is met IP's werken.

Simpel voorbeeld:
Je maakt een sessie aan in de pagina met het formulier. Wordt het formulier verzonden, naar vergelijk je het IP uit de sessie met $_SERVER['REMOTE_ADDR']. Is deze gelijk, dan komt hij van jouw formulier, anders niet.
Offline vinTage - 09/03/2006 22:02 (laatste wijziging 09/03/2006 22:04)
Avatar van vinTage Nieuw lid Maar als de "hacker" dan al eens op je site is geweest (en zn browser niet heeft afgezet) dan bestaat die sessie toch nog steeds (in een tabblad ofzo).

Maar ik ben niet bekend met dat unset gedoe, dus ik ga me daar eens in verdiepen 
Mischien bied dat een oplossing.

edit: @henri ah dat is idd een goed idee, alleen zou ik eigenlijk geen db willen gebruiken, maar als het zo wel werkt dan moet de hacker al veeeeel doen (swf openbreken/form maken/ip spoofen) maw...redelijk safe
Offline xSc - 09/03/2006 22:04
Avatar van xSc Onbekend Sessies verlopen vrij snel hoor ....

Cookies kunnen, afhankelijk van programmering, heel lang blijven bestaan. 
Offline vinTage - 09/03/2006 22:09
Avatar van vinTage Nieuw lid woei, de flash communitie gaat blij zijn als dit allemaal gaat lukken, dan kunnen ze gewoon swfjes (includen (loadmovie)) zonder dat de "rippers" ze dan kunnen tracen ! 

Offline Rens - 09/03/2006 22:36
Avatar van Rens Gouden medaille

Crew algemeen
vinTage, als de sessie is geset, word hij meteen verwijderd.
Voorbeeldje:
  1. <?PHP
  2. if($_SERVER['REQUEST_METHOD'] == "POST")
  3. {
  4. if( (!IsSet($_SESSION['sessieNaamVoorCheck'])) || ($_SESSION['sessieNaamVoorCheck'] !== true) )
  5. {
  6. echo "Het formulier is niet vanaf de juiste pagina verzonden.";
  7. } else
  8. {
  9. unset($_SESSION['sessieNaamVoorCheck']);
  10. // vanaf nu bestaat de sessie niet meer
  11. echo "Het formulier is vanaf de juiste pagina verzonden.";
  12. }
  13. } else
  14. {
  15. $_SESSION['sessieNaamVoorCheck'] = true;
  16. ?>
  17. formulier
  18. <?PHP
  19. }
  20. ?>
Offline vinTage - 10/03/2006 10:56 (laatste wijziging 10/03/2006 12:18)
Avatar van vinTage Nieuw lid @Rensjuh thx, dat lijkt er al behoorlijk op !!

Zouden de lezers willen checken of ze erachter kunnen komen wat de naam is (niet het orgineel, want ik heb het een andere naam gegeven) kunnen achterhalen ?


dus probeer wat te pielen en leg me uit hoe je het voor elkaar kreeg om de naam van de door mij gebruikte mp3 te vinden.

http://www.vintagesworld.be/zooi/safeFlash/url.php

edit: om het de mensen die geen flash decompiler hebben gemakkelijker te maken, de flash POST een var genaamd "ladenMaar".

dus met dit form zou het moeten lukken (bij mij niet iig) maar mischien kan je nog iets anders doen, wat ik nog niet weet dus...
  1. <form action="http://www.vintagesworld.be/zooi/safeFlash/url.php" method="post">
  2. <input name="waarde" type="text" value="ladenMaar" />
  3. <input type="submit" name="Submit" value="Submit" />
  4. </form>


sidenote: de text in het liedje is wel groovy, probeer dat maar eens na te doen 
Offline BramBo - 10/03/2006 12:32
Avatar van BramBo JS gevorderde url = muhaha.mp3  

Als volgt :
- Zorg dat je een flash swf-decoder op je pc hebt staan
- Zorg dat je een packet sniffer op je pc hebt staan (ik raad Ethereal aan)

Met deze 2 tools is het gesneden koek.
Open de pagina, sla de swf op. Decode hem met de flash decoder zoek naar de variable die hij gaat laden in dit geval was het :
geluid.loadsound(url, true);
Deze heeft hij eerder verkregen van url.php via n post.

Als je dat weet kan je gaan zoeken in je packets. Open Ethereal Zorg dat je geen open verkeer hebt, dus geen downloads websites die streamen of wat dan ook.
Start met capturen en refresh de pagina. Als je n packet of 20 hebt heb je n goede kwantiteit om het post forum te achterhalen.
(Kijk in de packets die verstuurd/ontvangen zijn Via het HTTP protocol)

Offline vinTage - 10/03/2006 12:36 (laatste wijziging 10/03/2006 12:37)
Avatar van vinTage Nieuw lid Wow, nice man, het is nog juist ook !!

Jammer dat ik van je hele packet verhaal etc geen bal begrijp 

Heb je ook een idee hoe je dit kan voorkomen ?

Thx voor je werk zover !!

ik ga eens iig bekijken met dat etheral dinges of ik het uitpluizen, want dit is me een beetje te skilled  
Offline BramBo - 10/03/2006 12:39
Avatar van BramBo JS gevorderde Ik zal vnv eens kijken of ik wat kan verzinnen qua oplossing. Ik heb wel iets in mijn hoofd maar eerst maar eens men werk hier afmaken 
Offline vinTage - 10/03/2006 13:19 (laatste wijziging 10/03/2006 13:22)
Avatar van vinTage Nieuw lid Net dat program gedownload en getest, en inderdaad het is redelijk te doen zo, maar dan moet je al wel heel ver gaan wil je zoiets doen.

Ik ben nog wat aan het googlen geweest om dit tegen te gaan, maar verder dan het checken op mac adressen kwam ik niet, er zijn al verschillende topics geweest over het detecteren daarvan, maar dat is dus onmogelijk (werkt alleen op locale netwerken).

Mocht je hiervoor toch een werkende php oplossing hebben (of iets wat gewoon iedereen kan gbruiken op zn host), dan hoor ik die uiteraard graag.



Ik heb de url weer veranderd voor degene die het toch op een andere manier willen proberen !
Dus het mp3 heet niet meer muhaha.mp3
Offline ikkedikke - 10/03/2006 15:56 (laatste wijziging 10/03/2006 15:57)
Avatar van ikkedikke PHP expert bijna dezelfde manier... ipv een header te sturen lees je het bestand op de server in, echo't het en geeft de juiste content type mee!
het mooiste zou zijn als je je flashbestandje kon compilen op je server.
dan kon je iedere keer de "geheime string" mee kunnen geven in het flashbestandje zelf.
Nu is het ook zo dat iemand gewoon 2 requests doet naar je server en hij heeft zn liedje alsnog..?
Offline vinTage - 10/03/2006 16:00 (laatste wijziging 10/03/2006 16:07)
Avatar van vinTage Nieuw lid Dat online "compilen" gaat niet lukken, maar er plopt me inneens iets te binnen wat mischien ook wel werkt.

Wat je precies bedoeld met headers begrijp ik niet echt omdat ik nog steeds een dikke naab in php ben, maar ik zal dat (na uitwerking van mn net binnengeplopte idee uitgewerkt te hebben) eens uitzoeken.

edit 2 requests ?....wat is het liedje dan ? (/me hoopt dat je het mis hebt) 

edit: hmm mijn idee is ook niet goed, dan kan je die packets nog steeds gewoon zien, dus ik begin er niet eens aan 
Offline Rens - 10/03/2006 16:09
Avatar van Rens Gouden medaille

Crew algemeen
Banzai^^
Offline vinTage - 10/03/2006 16:09
Avatar van vinTage Nieuw lid damn 


hoe ?...met die 2 requests ?
Offline Rens - 10/03/2006 16:10 (laatste wijziging 10/03/2006 16:10)
Avatar van Rens Gouden medaille

Crew algemeen
Nee, ook gewoon op dezelfde manier als BramBo...
Ethereal alleen al is genoeg...
Zag op gegeven moment banzai.mp3 staan...
Offline vinTage - 10/03/2006 16:12 (laatste wijziging 10/03/2006 16:14)
Avatar van vinTage Nieuw lid ja, maar ik wist al dat je het kon lezen via die packets, maar hoe dat tegen te gaan weet ik niet.

Nu verander ik het nog eens, maar dan geen sniffers meer gebruiken aub (niet totdat ik daar een oplossing voor heb gevonden iig) 

mp3 naam is weer veranderd 
Offline ikkedikke - 10/03/2006 16:30
Avatar van ikkedikke PHP expert met javascript laat je de eerste keer de flash ophalen, sessie wordt geset. je submit je formulier en niemand zal ooit iets merken!
je moet iets aan dat form vanaf de client meegeven waardoor die weet dat de flash echt is gebruikt..
Offline vinTage - 10/03/2006 16:41
Avatar van vinTage Nieuw lid niet dat ik er een drol van snap, maar dan zie je toch nog steeds die meuk via een sniffer ?

Of heb je een andere manier van die zaak opvragen, want bij mij lukt het niet met die post form, jou wel ?
Offline ikkedikke - 10/03/2006 22:57 (laatste wijziging 10/03/2006 23:24)
Avatar van ikkedikke PHP expert
  1. <?
  2. if(isset($_POST['stuurmijmijnmp3']))
  3. {
  4. if($_POST['valideercode']==$_SESSION['valideercode'])// code waardoor je weet dat de post echt van het flashbestandje komt.
  5. {
  6. header('Content-type: audio/mpeg');
  7. readfile('mp3tje.mp3');
  8. }
  9. else
  10. {
  11. //illegale hit
  12. }
  13. }
  14. else
  15. {
  16. //flashbestand echoën, dit bedoelde ik met het op de server compilen, dan zou je de valideercode mee kunnen geven.
  17. }
  18. ?>

dit geheel noem je flash.php


Edit over een andere boeg:
Je zou iets in java kunnen schrijven die de veiligheidscode maakt
[URL=http://img480.imageshack.us/my.php?image=naamloos0ev.jpg]http://img480.image.../naamloos0ev.th.jpg[/url]
Offline vinTage - 10/03/2006 23:26
Avatar van vinTage Nieuw lid maar het bestand die ik heb IS toch al safe ?..zoniet zeg dan "waar" het in gebreke blijft, het enige wat er nu nog is, is dat een sniffer alles ziet wat er verzonden word, dus ook "readfile('mp3tje.mp3');"

Waar het me nu om gaat (als mn file echt safe is op Xside scripting), is dat een sniffer er geen zak van snapt (of toch iig de gebruiker van die sniffer niet)
Offline ikkedikke - 11/03/2006 00:11
Avatar van ikkedikke PHP expert ik neem aan dat je neit wil dat mensen hotlinken naar je mp3tje?
wat je nu doet is de toegang tot dat mp3tje versleutelen. niemand zal zien dat dat bestand mp3tje heet..
Offline vinTage - 11/03/2006 00:56 (laatste wijziging 11/03/2006 00:59)
Avatar van vinTage Nieuw lid dat was op mijn (Rensjuh's) manier al niet meer...

Heb je uberhaubt wel iets gelezen van de laatste X topic replys ? 

of bedoel je dat ZELFS via die packets uitlezen, die mp3 "onzichtbaar/onherkenbaar" word op "jouw" manier ?

moeilijk te geloven, maar ik weet er zelf niks vanaf dus het zal wel 
Offline ikkedikke - 11/03/2006 19:08
Avatar van ikkedikke PHP expert ik wil alleen zeggen dat zomaar een sessie neerzetten geen enkel nut heeft, iemand moet nu gewoon 2 hits doen ipv 1 om het mp3tje te krijgen.
en verder als je het onleesbaar wil maken moet je het encrypten, zo dat het geen vermogen aan cpukracht kost om het weer om te zetten naar iets bruikbaars.
Offline vinTage - 12/03/2006 01:06
Avatar van vinTage Nieuw lid je komt de naam van het mp3tje niet te weten alleen door 2 hits te doen, tot nu toe is de gebruikte methode veilig...op die sniffer manier na.
Offline ikkedikke - 12/03/2006 12:08
Avatar van ikkedikke PHP expert wat doet die naam er toe als je op een andere manier precies hetzelfde mp3tje krijgt?
het enige wat je nu gedaan hebt is het onder een andere naam beschikbaar maken en een verplichting gesteld van 2 hits ipv 1..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.227s