Hallo

Welkom, Gast. Alsjeblieft inloggen of registreren.

Recent

499 gasten, 0 leden

Welkom, Gast. Alsjeblieft inloggen of registreren.

27 april 2024, 16:39:26

Login met gebruikersnaam, wachtwoord en sessielengte

Nieuws

Welkom op het vernieuwde NL Computer Forum!

Auteur Topic: CGI-bin  (gelezen 10848 keer)

0 leden en 1 gast bekijken dit topic.

Offline NLCOMP

  • Forumheld
  • *****
  • Berichten: 14.666
    • NL Computer Forum
CGI-bin
« Gepost op: 11 november 2009, 20:24:42 »
Bericht 1 van 11

NL Computer Forum ~ Homepages & Web
 Van:Don Esteban (NLHelp)Datum:16-11-2008
 Aan:AllenMsgID:4081.1
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi all,


(terug van weggeweest)
Ik ben met een berichtenhoekje voor de familie bezig. De startpagina is gelinkt aan een berichtpagina (form) waar men een bericht kan plaatsen. Na verzending maakt het bericht een omweg via de map cgi-bin van mijn @home server en verschijnt er een voorbeeld van het bericht met tevens het verzoek het getoonde (random)getal in te typen. Daarna verschijnt het bericht op de startpagina. Allemaal leuk en wel maar ik ben gebonden aan de bestandsnaam guestbook.html. Hierdoor krijg ik de toegang tot de site niet beveiligd. @homekenners zullen makkelijk binnen kunnen komen. Da's dus geen privéhoek meer dan.

 
Ik wil nu op mijn eigen webspace een dergelijke kletshoek maken maar zal voor de terugkoppeling in de cgi-bin map zaken moeten zetten die het bericht behandelen en naar de juiste map gaat zenden. Althans, ik stel me voor dat het zo ongeveer werkt. Ik heb hiervoor ActivePerl gedownload en geinstalleerd maar dit blijkt hogere wiskunde voor me. Weet iemand een makkelijkere oplossing?

BVD Don. 


Bericht 2 van 11

NL Computer Forum ~ Homepages & Web
 Van:Michel Uphoff (Sysop)Datum:16-11-2008
 Aan:Don Esteban (NLHelp)MsgID:4081.2
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Don,


>> Ik wil nu op mijn eigen webspace een dergelijke kletshoek maken  <<
Als je ondersteuning hebt voor beveiligde (wachtwoord beschermde) mappen, en de juiste bestandjes moet dat wel lukken, al zal het wel een gedoe zijn. De provider moet dan wel httaccess ondersteunen, en een flink aantal doen dat niet.


Er is ook een (niet waterdichte) oplossing met een stukje script mogelijk. Truc is dat er via een eenvoudig javascriptje gesurfd wordt naar een pagina die zonder dat script niet te vinden is. Het scriptje vraagt om een wachtwoord en brengt je dan naar die onbekende pagina toe.


Dit werkt altijd en zonder gedoe met exguise talen, maar is zoals gezegd niet waterdicht. Als iemand de exacte naam van dat Html bestand weet kan hij er ook bij.


Wil je een voorbeeldje, geef dan maar een gil.

Michel Uphoff (NLcomputer)
Homepage



Bericht 3 van 11

NL Computer Forum ~ Homepages & Web
 Van:Don Esteban (NLHelp)Datum:16-11-2008
 Aan:Michel Uphoff (Sysop)MsgID:4081.3
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Michel,


>>Truc is dat er via een eenvoudig javascriptje gesurfd wordt naar een pagina die zonder dat script niet te vinden is.<<
Als dat mogelijk maakt dat ik het URL zelf mag bedenken ben ik ver genoeg.

 
Waterdicht zou mooi inderdaad zijn maar een redelijke beveiliging is ook al goed genoeg. Tenslotte zal een dergelijke babbelbox geen staatsgeheimen bevatten;-)  Dus een voorbeeldje wordt in dank afgenomen.
Don
 


Bericht 4 van 11

NL Computer Forum ~ Homepages & Web
 Van:Michel Uphoff (Sysop)Datum:17-11-2008
 Aan:Don Esteban (NLHelp)MsgID:4081.4
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Don,


Attached voorbeeld.zip. Even in een lege map uitpakken.


Werking: het bestand waar het om gaat (waar de familiepagina mee bereikbaar is, zeg maar de hoofdpagina van de beveiliging) heeft 4youreyesonly (je mag het natuurlijk een andere naam geven). Deze pagina geeft geen extensie (geen html pagina volgens de regels). Toch zal als je in een andere pagina een link naar deze pagina maakt, hij gewoon werken. Hij zal door het ontbreken van de htm(l)  extensie ook niet geïndexeerd worden door zoekmachines.

 
Als je nu index.html start word je om een wachtwoord gevraagd. Dat wachtwoord is in feite de naam van die onbekende pagina. Dus 4youreyesonly opgeven en op inloggen klikken opent Sesam.


Kijk in index.html voor het stukkie javascript dat het wachtwoord gebruikt om te linken.


4your... heeft als inhoud een framesetje, dat links lijst.html toont, en rechts, afhankelijk van de gekozen optie in de lijst pag01,02 of 03. Is er nog geen keuze gemaakt, dan wordt rechts welkom.html getoond.


Om te voorkomen dat je direct in die pag01,02,03 en welkom kunt terecht komen is er een "self-top" scriptje gebruikt, dat de gelukkige die op een van deze 4 pagina's binnenkomt direct doorstuurt naar index.html. Zo zal je dus altijd het wachtwoord op moeten geven om in 4your... te komen.


Dus alleen als je de naam van die vreemde pagina zou weten kan je hem oproepen. Nergens is die naam te lezen, en vanwege het ontbreken van indexering blijft de naam onder het oppervlak. Vanwege het self-top scriptje kan je zo meerdere pagina's beveiligen met een verborgen pagina. Slimmerikken zouden scripting uit kunnen zetten, maar dan werkt het doorsturen na opgave van het wachtwoord niet meer, dus die vlieger gaat ook niet zomaar op.


Hopenlijk een beetje duidelijk zo, anders vraag je maar.

Michel Uphoff (NLcomputer)
Homepage
 
Bijlagen :

Voorbeeld.zip
2KB


Bericht 5 van 11

NL Computer Forum ~ Homepages & Web
 Van:Don Esteban (NLHelp)Datum:17-11-2008
 Aan:Michel Uphoff (Sysop)MsgID:4081.5
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Michel,


Hartelijk dank. Ziet er niet al te moeilijk uit. Ik ga dat scriptje beslist hierbij gebruiken. Maar het was eigenlijk niet het knelpunt waar in principe mijn vraag over ging:


Wat ik graag wil is een script (en eventueel wat uitleg) hoe ik een terugkoppeling van ingezonden berichten kan krijgen naar de hoofdpagina. Dus zoals een gastenboek of een forum etc. werkt maar dan via mijn eigen webspace. Hoofdpagina heb ik klaar, de berichtenpagina ook en via de @home (tegenwoordig Ziggo) server werkt het prima. Maar.. het werkt omdat de @homeserver als postbode fungeert met een script in hun map cgi-bin. Nou, die map heb ik ook op mijn webspace maar die is leeg en ik weet niet wat erin moet om die postbode aan het werk te krijgen. Als ik dit voor elkaar heb, kan ik het het meest vreemsoortig URL verzinnen. Dan nog eens jouw beveiliging er bovenop, dan lijkt het me prima privé, nietwaar?

 
BVD Don
 
 


Bericht 6 van 11

NL Computer Forum ~ Homepages & Web
 Van:Michel Uphoff (Sysop)Datum:18-11-2008
 Aan:Don Esteban (NLHelp)MsgID:4081.6
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Don,


>> Als ik dit voor elkaar heb, kan ik het het meest vreemsoortig URL verzinnen. <<
Ik begrijp je niet helemaal. Bedoel je dat datgene wat op de Ziggo server wel werkt niet werkt op jouw eigen webspace (ander domein??). Zo ja, dan zal je toch moeten kijken of er bij die provider een cgi gastenboek scriptje is. Op http://bignosebird.com/cgi.shtml zijn wel scriptjes te vinden.


Of bedoel je dat het bericht van Ziggo doorgestuurd moet worden naar een map op jouw eigen webspace, dat zal vast niet lukken.

Michel Uphoff (NLcomputer)
Homepage



Bericht 7 van 11

NL Computer Forum ~ Homepages & Web
 Van:Don Esteban (NLHelp)Datum:18-11-2008
 Aan:Michel Uphoff (Sysop)MsgID:4081.7
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Michel,


>>Bedoel je dat datgene wat op de Ziggo server wel werkt niet werkt op jouw eigen webspace (ander domein??).<<


Het kan niet werken op mijn webspace want daar staat geen script wat als postbode moet dienen. Ik vond op mijn webspace wel een map cgi-bin maar die is leeg. Begrijp ik nu van je dat die host voor dat scriptje moet zorgen? Ik heb getracht om iets te vinden op http://bignosebird.com/cgi.shtml maar daar kom ik vooralsnog niet uit. Ik vraag me af hoe mensen dit doen die gewoon een compleet nieuw gastenboek aanmaken. Daar zal een verzonden bericht uiteindelijk toch ook op de bedoelde pagina belanden?

 
Donnemans 


Bericht 8 van 11

NL Computer Forum ~ Homepages & Web
 Van:Michel Uphoff (Sysop)Datum:18-11-2008
 Aan:Don Esteban (NLHelp)MsgID:4081.8
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Don,


>> Begrijp ik nu van je dat die host voor dat scriptje moet zorgen? <<
Als je geen eigen webserver oid heb, inderdaad. Dan zal je bij de hosting provider moeten nagaan of hij cgi-scripts ter beschikking stelt en hoe die aan te roepen. Wie is die provider? Dan kijk ik even mee. Overigens zulle die scripts -zoals gemeld- alleen binnen het domein van die provider werken, maar dat is iha geen probleem.

Michel Uphoff (NLcomputer)
Homepage



Bericht 9 van 11

NL Computer Forum ~ Homepages & Web
 Van:Don Esteban (NLHelp)Datum:18-11-2008
 Aan:Michel Uphoff (Sysop)MsgID:4081.9
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Michel,


>>Wie is die provider? Dan kijk ik even mee<<
Vroeger was dat Ready Hosting maar mijn American nephew die het zakelijke regelt bij de host heeft me onlangs verzocht te verhuizen naar een meer interessante host. We delen n.l. het een en ander. Zo gezegd zo gedaan en ik ben 1 keer op de website van die nieuwe host geweest. Ik kan hem niet meer terugvinden in de favorieten dus even mijn neef vragen. In elk geval staat op de space een lege map cgi-bin dus ik neem aan dat ze die er niet voor niets hebben gezet.  Hasta luego.
Don
 


Bericht 10 van 11

NL Computer Forum ~ Homepages & Web
 Van:Ronald BeukerDatum:26-11-2008
 Aan:Don Esteban (NLHelp)MsgID:4081.10
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Beste Don,


>> Zo gezegd zo gedaan en ik ben 1 keer op de website van die nieuwe host geweest. Ik kan hem niet meer terugvinden in de favorieten dus even mijn neef vragen. <<


Is het wellicht http://cphosting.com ? En ik vermoed dat zij weer klant zijn bij http://www.fastservers.net/ 


Maar goed, even afgezien daarvan: zelf zou ik toch ook eens kijken of je het betreffende familiehoekje niet op webserver niveau kunt beveiligen. Zo'n script is natuurlijk prachtig enzo, maar waterdicht is het niet. Bovendien zit je bij een Amerikaanse webhost, en de webhosting is daar een heel stuk volwassener dan hier (veel meer concurrentie, dus lagere prijzen en meer mogelijkheden). Ik kan me nauwelijks voorstellen dat je een US-webhoster kunt vinden die je niet toestaat om via een htpasswd bestandje even wat bestanden te beveiligen.


En zo moeilijk is het niet. Ik heb even gespiekt, en je kunt zgn. PHP-bestanden gebruiken (versie 4.3.9 is geïnstalleerd). Ik zal proberen hieronder op 6 stappen uit te komen:


1. Open Kladblok en kopieer/plak daarin alleen de onderstaande regels:


<?php
  
echo dirname(__FILE__);
?>

2. Sla dit tekstbestandje op met de extensie .php, bijvoorbeeld waarbenik.php  (de naam maakt verder niet uit, als je zometeen maar even onthoudt hoe je het had genoemd).


3. Maak verbinding met je ftp-programma (zoals je altijd doet als je bestanden op je website plaatst). Maak voor zover nodig een nieuwe directory aan, zodat je familiehoekje bijv. aan te roepen is met http://jouwwebsitenaam.net/familiehoekje


4. Plaats het waarbenik.php bestandje in de zojuist gemaakte map (of in de al aanwezige map, als je al een 'familiehoekje' o.i.d. map had). Start vervolgens een webbrowser naar keuze, en open dat php-bestand in de browser: http://jouwwebsitenaam.net/familiehoekje/waarbenik.php


5. Je krijgt nu het zgn. 'path' te zien. Dit kan van alles zijn, wellicht is het iets als /home/jouwloginnaam/public_html/familiehoekje  (wat er precies staat, maakt verder niets uit; voor nu gaat het erom dat je weet wát het 'path' is).


6. Nou na deze 6e stap komen er nog een paar, maar houd vol! Het is echt niet zo heel moeilijk. <g> Maak nu weer een nieuw Kladblok bestand aan, en plaats daarin de volgende regels:


AuthUserFile /home/jouwloginnaam/public_html/familiehoekje/.htpasswd
AuthType Basic
AuthName "Geef nu eerst de gebruikersnaam en het wachtwoord!"
require valid-user


Op de 1e regel zet je dus, na AuthUserFile en een spatie, het door jou bij stap 5 gevonden 'path', direct gevolgd door /.htpasswd


7. Sla dit bestandje op als htaccess.txt en upload het vervolgens naar de webserver (plaats het in de 'familiehoekje' map).


8. Verander nu de naam van het bestand dat op de server staat. Dus htaccess.txt wordt .htaccess  (dus er komt een punt vóór, en het .txt aan het eind valt weg). Nu vraag je je natuurlijk af: waarom heb ik niet eerst op mijn eigen computer de naam veranderd in .htaccess  Nou, dat is omdat Windows de neiging heeft om er dan tóch weer .txt achter te gaan zetten, of die punt vooraan wordt niet geaccepteerd. Met de zojuist genoemde truc omzeil je dat dus.


9. Het enige wat nu nog nodig is, is een .htpasswd bestand met daarin de gebruikersnaam en wachtwoord (of gebruikersnamen en wachtwoorden; je zou ook iedereen een eigen login kunnen geven). Om veiligheidsredenen wordt het wachtwoord gecodeerd in het .htpasswd bestand gezet. Gelukkig zijn er sites die je hiermee kunnen helpen, bijvoorbeeld deze: http://www.uwhelpdesk.nl/Ladot/secure/


Ga naar die webpagina en scroll naar beneden, totdat je bij het kopje 'Het maken van een password/wachtwoord' bent. Je kunt daarin de gewenste gebruikersnaam en het wachtwoord typen. Vervolgens klik je op de knop 'Maken'. Er opent zich dan een nieuw venster, waarin zoiets als het onderstaande staat:


onzefamilienaam:$1$8Q85lcbu$4.f4PlybdCd4NSoI2mJoR0


Hier is 'onzefamlienaam' de gebruikersnaam, en achter de dubbele punt staat gecodeerd een heel fraai wachtwoord. Wees gerust: de gebruikers hoeven niet die vreselijke tekenreeks te typen! Zij typen gewoon bladiebladiebla (dit geweldige wachtwoord had ik gebruikt <g>), en de webserver controleert dan of dat in gecodeerde vorm inderdaad $1$8Q85lcbu$4.f4PlybdCd4NSoI2mJoR0 is.


10. Maak opnieuw een nieuw Kladblok bestand, en kopieer/plak daarin alleen de regel die je bij stap 9 hebt gemaakt. Let even op: bij het kopiëren neem je snel een teken te veel mee (nl. een extra spatie aan het eind). Dan zou het straks fout kunnen gaan, dus zorg ervoor dat je echt t/m het laatste teken kopieert, en niets meer dan dat. Een truc is om in Kladblok ná het plakken even Ctrl-A te doen, alles wordt dan geselecteerd. Als er dan een extra spatie achter het wachtwoord staan, dan zie je dat nu meteen. Haal zo'n extra spatie dan nog even weg.


11. Sla het bestandje op als htpasswd.txt en upload het vervolgens naar de webserver (plaats het wederom in de 'familiehoekje' map).


12. Verander opnieuw de naam van het bestand dat op de server staat. Dus htpasswd.txt wordt .htpasswd  (dus er komt weer een punt vóór, en het .txt aan het eind valt weg).

 
Klaar! Toch keurig in 2x6 stappen.   Het grote voordeel is dat nu álle bestanden in de 'familiehoekje' map beveiligd zijn. De eerste keer dat je met een webbrowser een bestand uit die map wilt laden, krijg je de vraag om de gebruikersnaam en wachtwoord in te voeren. Vervolgens zal de webserver je toegang verlenen tot alle bestanden in de beveiligde map.


Het bovenstaande is een heel verhaal, maar ik weet zeker dat je het kunt!


Succes!


Groeten,
Ronald (Sysop)


Bericht 11 van 11

NL Computer Forum ~ Homepages & Web
 Van:Don Esteban (NLHelp)Datum:26-11-2008
 Aan:Ronald BeukerMsgID:4081.11
 Onderwerp:cgi-bin Forum:ws-nlcomputer
Hoi Ronald,


Hartelijk bedankt voor de wel zeer uitgebreide reply. Daar ga ik spoedig mee stoeien. Het was inderdaad CPHosting. Ik had hun controlpanel in de IE favorieten zitten maar cpanel kijk je snel overheen. Als je dat panel bekijkt heb je inderdaad gelijk door te stellen dat ze een stuk volwassener zijn. Er zit dan ook veel in waar ik de ballen van begrijp  


Ik hou je op de hoogte, Don