Toon posts:

Website lay out

Pagina: 1
Acties:

Verwijderd

Topicstarter
Okies heb nu ff iets simpels genomen, alleen werkt niet helemaal. Heb een scherm met 3 frames.

Namelijk, left.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
echo("
<table border=3 CELLPADDING=6 width=100%>
<tr>
<td bgcolor=CCFFCC CELLPADDING=1><center><a href=index.php?page=front.php target=middle.php>Main</></td>
</tr>
<tr>
<td bgcolor=CCFFCC CELLPADDING=1><center><a href=index.php?page=output_news.php target='middle.php'>News</></td>
</tr>
<tr>
<td bgcolor=CCFFCC CELLPADDING=1><center><a href=index.php?page=output.php target=middle.php>Quotes</></td>
</tr>
</table>
");


?>


En middle.php
PHP:
1
2
3
4
5
6
7
8
<? if(!$_GET[page])
{
include("front.php");
}
else
{
include($_GET[page]);
}?>


right.php is voorlopig nog leeg maar das niet belangrijk. Ik wl dus wat ik in mijn menu kies op mijn middelste frame uit laten komen.

Als ik deze 2 codes op 1 pagina zet (zonder frames en target frames natuurlijk) werkt het wel maar zo niet. Wat doe ik verkeerd?

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 17-08 10:28
mm heerlijke code :)
wat zou er gebeuren als ik middle.php?page=/etc/passwd aan zou roepen?

verder moet je een target maken en die ook in je frameset zetten
HTML:
1
<frame name="jetarget">

Icons are overrated


  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
en in je left.php:
code:
1
<base target="jetarget">


Waarom zet je die html trouwens in een echo?

Verwijderd

Helmet schreef op 03 May 2003 @ 19:52:
mm heerlijke code :)
wat zou er gebeuren als ik middle.php?page=/etc/passwd aan zou roepen?

verder moet je een target maken en die ook in je frameset zetten
HTML:
1
<frame name="jetarget">
Ja maar dan moet je wel weten in welke file die passwd staat hé ;)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 03 May 2003 @ 20:34:
[...]

Ja maar dan moet je wel weten in welke file die passwd staat hé ;)
Da's het principe: We laten de lek zitten, omdat niemand de lek kan vinden.. :X

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Om de een of andere reden werkt het nog steeds niet als ik beide tags erin gooi. Tenminste het werkt wel in de zin van klikken en iets gebeurt er dan in de mainFrame, alleen er komen geen andere pagina's.

Ff opnieuw, dit is de originele file:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<html>
<head>
<title>Foxhound Entertainment Presents Trinity Projects</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" align=center>
  <tr>
    <td height="153"><center>[img]testlogo.jpg></center>

</td>
[/img]
</table>
<p>&nbsp;</p>
<table border="1" width=15%>

  <td border="1" align=left><? include("menu.php"); ?></td> 
 
  </table>
  <table border=1 align=top>
  <td><? if(!$_GET[page])
{
include("front.php");
}
else
{
include($_GET[page]);
}?></td>
  </tr>
</table>
</body>
</html>

En menu.php is dus eigenlijk hetzelfde als left.php

Wat doe ik boven precies verkeerd dat mijn page plotseling niet meet doet zoals die hoort te doen?
Waarom zet je die html trouwens in een echo?
Geen reden, alleen wou ff consistent blijven met php files.

[ Voor 54% gewijzigd door Verwijderd op 03-05-2003 20:41 ]


Verwijderd

Verwijderd schreef op 03 May 2003 @ 20:34:
[...]

Ja maar dan moet je wel weten in welke file die passwd staat hé ;)
Daar gaat het niet om, die include kan ook van buiten jou eigen server komen...met heel vervelende scriptjes zoals DROP TABLE of DROP DATABASE etc.
En geloof me, die wil je niet ;)

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Zou het ook niet te maken kunnen hebben met het feit dat je hele brakke html code gebruikt? haal het eens door de W3c validator heen, en zie dat je quotes moet gebruiken, een # voor een kleur moet zetten, en bovenal een doctype moet neerzetten.

Ik weet niet of het je probleem oplost, maar anders wel voorkomt het wel andere problemen.

日本!🎌


  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
Je mag ook eens kijken wat er gebeurt als je je HTML en PHP code opschoond. Zoiets als $_GET[page] is geen geldige PHP, en dus vragen om problemen. Zelfde geldt voor de HTML.

  • Cartman!
  • Registratie: April 2000
  • Niet online
voor beveilging hiervan kan j denken aan een maximale stringlengte, als ie te lang is werkt t niet. Werkt best goed imo :) als iemand betere ideeen heeft dan hoor ik t graag. beveilging is belangrijk :)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$id = $_GET['id'];
    if(file_exists("$id.php") && strlen ($id) < 9) { 
    include "$id.php"; 
    }
            elseif(file_exists("home.php") && strlen ($id) == 0) { 
            include "home.php"; 
            }
                else{ 
                include "error.php"; 
                }
?>

zo dus

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Nog beter:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if(!empty($_GET['id']))
{
  $id = $_GET['id'];
  if(preg_match('/^[0-9a-z\.]+$/i', $id) && file_exists(...))
  {
     include("$id.php");
  }
  else
  {
     include("error.php");
  }
}
else
{
  include("home.php");
}


weet je nog zekerder dat het niet zomaar mis kan gaan :)

[ Voor 44% gewijzigd door ACM op 04-05-2003 01:29 ]


  • Cartman!
  • Registratie: April 2000
  • Niet online
das helemaal een mooie idd, daar was ik nog niet opgekomen :)
gewoon de verboden chars mogen niet voorkomen checken, zit t erin -> error.php :)
mooi mooi :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

beetje bijgewerkt :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:23

crisp

Devver

Pixelated

even een opmerking van algemene aard: ik zie veel mensen met PHP scripts waarin gewoon ranzige HTML gegenereerd wordt.
Veel mensen plaatsen maar een stukje van hun code, en genereren daarbuiten om wel netjes een DTD <html> <head> etceterea maar volgens mij zijn er ook legio mensen die dat niet doen. De vele brakke PHP-tutorials op internet gaan hier helaas ook niet verder op in.
Wat ik een ieder zou willen aanraden is om voordat je ueberhaupt met PHP of een andere server-side scriptingtaal begint, je eerst te gaan verdiepen in de basis die HTML heet. Dat is per slot van rekening wat je naar de browser stuurt, en dat moet dus gewoon goed zijn.
Een handig hulpje hierbij is de html validator van het world wide web consortium.

oh, en @ ACM:

PHP:
1
if(preg_match('/^\w+$/', $id) && file_exists(...))


is ook genoeg :+

[ Voor 9% gewijzigd door crisp op 04-05-2003 01:16 ]

Intentionally left blank


  • Cartman!
  • Registratie: April 2000
  • Niet online
eigenlijk zou een pagina met alleen php ook niet moeten werken, maar gewoon een browser fout moeten geven omdat er geen echt file komt als webpagina zijnde, maar dit gebeurt dus wel....

ik neem aan dat je nml. bedoelt dat in tutor's vaak alleen <? blala ?> staat en niet de html eromheen. En daar heb je gelijk in, dat is fout. Maar ik ga ervan uit hier dat mensen html kennen en dat wel begrijpen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

crisp schreef op 04 May 2003 @ 01:13:
oh, en @ ACM:

PHP:
1
if(preg_match('/^\w+$/', $id) && file_exists(...))


is ook genoeg :+
't Is dat ik de . vergeten was... :P

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:23

crisp

Devver

Pixelated

ACM schreef op 04 May 2003 @ 01:29:
[...]
't Is dat ik de . vergeten was... :P
eerder de _ :P
je zou 'm dan zelfs nog verder moeten uitbreiden met andere mogelijke karakters. Alleen de check of de file bestaat met die naam in een bepaalde directory lijkt me eigenlijk wel genoeg (dus / uitsluiten):

PHP:
1
if(preg_match('/^[^/]+$/', $id) && file_exists(...))

Intentionally left blank


  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-07 22:38
Verwijderd schreef op 03 mei 2003 @ 20:34:
[...]

Ja maar dan moet je wel weten in welke file die passwd staat hé ;)
Als PHP-Safe-Mode uit staat is dat geen probleem. Zelf een scrippie schrijven dat dmv een leuke exploit je server-HD kan browsen. Dat scrippie in een ander php script dmv echo uitpoepen, ergens online zetten en de complete url van dat script weer als pagina opgeven. Tada, Seiruu bedankt voor de gratis hosting alvast :)

lees voor meer info dit leuke artikeltje eens

[ Voor 12% gewijzigd door Maxonic op 04-05-2003 02:08 . Reden: +url ]


Verwijderd

hmz, ik heb er zelf (jammer genoeg) niet zo veel verstand van, maar ik gebruik dit om html (geen php) te kunnen weergeven via zo'n opzet:
code:
1
2
3
4
if (file_exists("../content/$Content.html")) {
   include ("../content/$Content.html"); } 
   else {
    echo "Requested file not found.";}


Op deze manier moet volgens mij , de opgegeven parameter (bv. /etc/passwd) als zijnde
../content/etc/passwd.html te vinden zijn (in dit geval is . dus de directory van de php file.

dus gezien vanaf de webroot ziet het er bij mij zo ongeveer uit:
/style
/pics
/php
/content
/content/file1.html
/content/file2.html

(dat content wordt nog /content/nl/........ , /content/en/..... etc.)

zover ik kan zien, werkt dit veilig , als iemand me kan vertellen/uitleggen waarom dit ook onveilig is, zou ik dat graag willen horen.

EN het zou idd beter zijn, als de php manual/script sites, ook op dit soort dingen wat beter ingingen. Het wordt toch een gemeengoed, dat php gebeuren (ik zie het als gwbasic voor het web :) ), dus wat tips etc. wat beveiliging etc. betreft, zou zeker geen kwaad kunnen (ook niet voor mij, die dit soort dingen ermaar wat bij doet).

[ Voor 6% gewijzigd door Verwijderd op 04-05-2003 02:27 ]


Verwijderd

Verwijderd schreef op 04 May 2003 @ 02:26:

zover ik kan zien, werkt dit veilig , als iemand me kan vertellen/uitleggen waarom dit ook onveilig is, zou ik dat graag willen horen.
Ok, ik bijt.. ;)
PHP:
1
$Content = "../../../../../../etc/passwd" ;
EN het zou idd beter zijn, als de php manual/script sites, ook op dit soort dingen wat beter ingingen. Het wordt toch een gemeengoed, dat php gebeuren (ik zie het als gwbasic voor het web :) ), dus wat tips etc. wat beveiliging etc. betreft, zou zeker geen kwaad kunnen (ook niet voor mij, die dit soort dingen ermaar wat bij doet).
Ik kan je denk ik niets nieuws vertellen.

Alle input van de browser is onbetrouwbaar, dat geldt voor alle web-scripting:
Escape dus alle input variabelen die gebruikt worden voor sql/html/fopen/system/email/eval/etc.... calls.
En speciaal voor php:Initialiseer al je variabelen want register-globals kan aanstaan..
dom voorbeeldje:
PHP:
1
2
3
4
if ($pass=="hackme") {$toegestaan = 1;}
if ($toegestaan == 1) {
     /*en wat als deze aangeroepen wordt met page.php?toegestaan=1*/
}

[ Voor 4% gewijzigd door Verwijderd op 04-05-2003 08:11 ]


Verwijderd

topicstarter?
staat <a ....target=middle.php> nog in left.php?
dan moet er natuurlijk ook een frame met die naam bestaan.. <frame name=middle.php>

Probeer het eerst eens aan het werken te krijgen zonder php, maar gewoon in html.

Verwijderd

Verwijderd schreef op 04 May 2003 @ 08:08:
[...]

Ok, ik bijt.. ;)
PHP:
1
$Content = "../../../../../../etc/passwd" ;


[...]
Daar dacht ik aan toen ik in bed lag :X , ik ga er 's ff wat op verzinnen.

Verwijderd

Acm en crisp hadden goede tips..
Of als je een hekel aan regexps hebt gewoon een str_replace op / of .
performt trouwens ook beter >:)

Verwijderd

Dus zo zit ik al wat veiliger dan:

PHP:
1
2
3
4
5
$Content = str_replace ( ".", "", $Content);
if (file_exists("../content/$Content.html")) {
   include ("../content/$Content.html"); } 
   else {
    echo "Requested file not found.";}


op deze manier, kunnen ze niet uit m'n "boomstructuur" komen, met eventuele 'valse' verwijzingen.

(hoe krijg ik trouwens, die code anders weergegeven hierzo??, dus met regelnr's ervoor ??)

[ Voor 110% gewijzigd door Verwijderd op 04-05-2003 11:28 ]


Verwijderd

(hoe krijg ik trouwens, die code anders weergegeven hierzo??, dus met regelnr's ervoor ??)
[ php ] [ / php ]
http://gathering.tweakers.net/forum/faq onderaan
ps: zet msn ff aan

[ Voor 8% gewijzigd door Verwijderd op 04-05-2003 11:26 ]


Verwijderd

Verwijderd schreef op 04 May 2003 @ 11:20:
(hoe krijg ik trouwens, die code anders weergegeven hierzo??, dus met regelnr's ervoor ??)
Staat in de Faq ;)
code:
1
2
3
[php]
// bla
[/php]


edit: /spuit 11 :+

[ Voor 10% gewijzigd door Verwijderd op 04-05-2003 11:27 ]

Pagina: 1