CGI, PHP, SSI en HTACCESS

Webruimte

CGI

U kunt zelf cgi-scripts maken. Deze kunt u ook gewoon in de documentenboom onder de /web directory plaatsen. U heeft geen aparte cgi-directory. Alle bestanden die op .cgi, en .pl eindigen worden als een cgi-programma beschouwd. Deze worden door de webserver opgestart onder de accountnaam en –permissies die bij uw pakket horen. U moet de scripts via uw ftp-programma executable maken (chmod 700).

Het is uw verantwoordelijkheid om scripts te maken die goed werken en de goede werking, veiligheid en privacy van het systeem, de klanten en overige systemen en gebruikers op het hele internet niet in gevaar brengen. De voorwaarden voor de webruimte sluiten hacking e.d. uit. Spin in het Web kan uw cgi-scripts lezen, controleren en zo nodig buiten gebruik stellen. Het is u ook niet toegestaan om gecompileerde (niet leesbare) cgi-programma’s te gebruiken. Het op internet verkrijgbare cgi-script “formmail” is ook verboden. Gebruik in plaats daarvan het webhulpje Verstuurformulier (zie de beheerwebsite).

Belangrijke paden e.d. voor de scripts:
/usr/bin/perl /usr/sbin/sendmail /usr/bin/formail /bin/chmod /bin/grep

Uw homedirectory vindt u in perl via (getpwuid($>))[7]

De huidige versie van perl is 5.38.2. Zie www.perl.com en www.perl.org voor meer informatie.

PHP

Pagina’s die eindigen op .php worden automatisch door de webserver als php-script behandeld. Ze worden uitgevoerd onder de naam en permissies die bij uw pakket horen. Php-scripts hoeven niet leesbaar te zijn voor anderen, het is zelfs een goed idee om ze helemaal dicht te zetten. Hiervoor gebruikt u uw ftp-programma (chmod 600, of owner read/write en niets bij group en world/others).

Een paar tips voor het gebruik van php-scripts op ons netwerk:

  • Standaard gebruikt uw webruimtepakket de door ons ingestelde laatste versie van PHP. U kunt echter ook instellen dat u een specifieke vaste versie wilt gebruiken. Dit kan via de opties in de beheerwebsite. Dit is een expert-optie en wordt voor normaal gebruik afgeraden.
  • Register globals staat uit. Dat betekent, dat variabelen die u via een webpagina “aan een script stuurt”, standaard niet onder hun naam beschikbaar zijn. Als u in een webformulier een veld heeft met de naam ‘adres’, dan komt de ingevulde waarde dus niet zomaar in het script als $adres. Gebruik in plaats daarvan $_REQUEST['adres'] of – afhankelijk van de situatie - $_POST of $_GET.Als u een oud PHP-script gebruikt en u krijgt fouten omdat variabelen niet gedefinieerd zijn, dan kan dat hieraan liggen. Om het oude gedrag na te bootsen kunt u gebruik maken van een script uit onze phplib. Plaats dan bovenin het php-script (dus tussen de tags), de volgende code:include('/home/centraal/phplib/registerglobals.php');

    Let op: dit oude gedrag van PHP is niet erg veilig. Als u een variabele $naam gebruikt, en iemand roept uw script aan als script.php?naam=piet, dan is daarmee die variabele ingesteld!

  • Foutmeldingen van php worden om veiligheidsredenen niet in de webbrowser getoond. In foutmeldingen staat vaak informatie over de opbouw van uw script, de vorm van uw database e.d. Wilt u tijdens het testen van uw script de foutmeldingen wel zien, zet dan deze instructie bovenin het php-script (dus binnen de tags):ini_set('display_errors','1'); error_reporting(E_ALL);
  • Wanneer u vanuit uw script e-mail verzendt, gebruik dan een mailer of plugin die gebruik maakt van de sendmail server, in plaats van het sendmailprogramma. Kan dat niet, zorg dan dat u in elk geval een geldig afzenderadres opgeeft. Om spam vanuit gehackte websites te voorkomen accepteert onze uitgaande e-mailserver geen mails met het standaard (interne) afzenderadres van uw webruimtepakket.

Door naar https:///centraal/scripts/info.php te surfen vindt u altijd up-to-date informatie over de php-installatie, inclusief versienummer en geïnstalleerde extensies.

Het is uw verantwoordelijkheid om scripts te maken die goed werken en de goede werking, veiligheid en privacy van het systeem, de klanten en overige systemen en gebruikers op het hele internet niet in gevaar brengen. De voorwaarden voor de webruimte sluiten hacking e.d. uit. Spin in het Web kan uw scripts lezen, controleren en zo nodig buiten gebruik stellen. Het is u ook niet toegestaan om gecompileerde (niet normaal leesbare) scripts te gebruiken. Voor kleine toepassingen adviseren wij de door Spin in het Web aangeleverde webhulpjes te gebruiken (zie de beheerwebsite).

Zie www.php.net voor meer informatie over php.

SSI

SSI (SHTML) is een uitbreiding van gewone webpagina’s, met bepaalde “tags”. Hierdoor kunt u bijvoorbeeld midden in een webpagina de inhoud van een ander bestand, of van een cgi-script plaatsen. De webserver hanteert alle gewone html pagina’s (.htm en .html) en .shtml pagina’s automatisch als SSI-bestanden.

De tag is om veiligheidsredenen niet toegestaan. Gebruik in plaats daarvan

Zie https://httpd.apache.org/docs/mod/mod_include.html voor (nogal technische) informatie.

HTACCESS-bestanden

Geavanceerde webtoepassingen hebben soms een .htaccess-bestand nodig. In zo’n bestand kunt u voor een directory (en alle directories daaronder) bijvoorbeeld beveiliging instellen, of webadressen dynamisch laten omschrijven (rewrite-rules).

U kunt bij Spin in het Web gewoon gebruik maken van .htaccess-bestanden. Let hierbij op het volgende:

  • Een .htaccess moet net als gewone webbestanden leesbaar zijn voor “allen”, zodat de webserver hem kan lezen.
  • Bestanden met de naam .htaccess zullen niet via het web bekeken kunnen worden.
  • U kunt .htaccess gebruiken om een map en alles eronder te beveiligen. Hiervoor moet u echter ook een wachtwoordbestand aanleggen, en die kunt u het beste buiten de webboom plaatsen. De helpdesk helpt u hier graag mee.
  • Naast beveiligingsopties kunt u een .htaccess ook gebruiken voor redirect en rewrite-regels (RewriteEngine On, RewriteOptions, RewriteCond en RewriteRule).