webForumDet fria alternativet

Säkerhet

4 svar · 179 visningar · startad av oelbal

oelbalMedlem sedan jan. 20014 973 inlägg
#1

Jag har snickart ihop ett egel litet nyhetssytem, där man kan logga in, skriva text, och sedan publiceradet i .txt fil som jag sedan includerar.
Eftersom systemet bara är avsett för högst 4-5 personer, så behöver jag inte någon databas eller liknande. Allt för att det skall gå så snabbt som möjligt.

Systemet består av 2 PHP-filer + en .txt-fil
(Observera att jag har minskat ned HTML-koden för att den skall bli lättare att avläsa!)
(Eftersom scriptet inte är klart så kan ni även observera att nästan inga av de skickade variablerna används!)

nyheter.php

<?php

if (!$submit)
	{

?>

<html>
<head>
<title>Inloggning för Användare</title>
</head>

<body bgcolor="#FFFFFF">
<form action="nyheter.php" method="post">
Användare: <input type="text" name="A"><br>
Lösenord: <input type="password" name="L"><br>
<input type="submit" value="Logga in" name="submit">
</form>

</body>
</html>

<?php

	}
else
	{
	$Anvandare[0] = "Joel Dahl";
	$Anvandare[1] = "Per Sandström";

	$Losenord[0] = "???????????";
	$Losenord[1] = "???????????";

	if ($A == $Anvandare[0] && $L == $Losenord[0])
		{
		ServeraInformationTillAnvandare();
		}
	elseif ($A == $Anvandare[1] && $L == $Losenord[1])
		{
		ServeraInformationTillAnvandare();
		}
	else 
		{
		echo "<html>\n";
		echo "<head>\n";
		echo "<title>Fel</title>\n";
		echo "</head>\n\n";
		echo "<body>\n\n";
		echo "Dina angivna uppgifter är felaktiga.\n\n";
		echo "</body>\n";
		echo "</html>\n";
		}
	}

function ServeraInformationTillAnvandare()
	{

?>

<html>
<head>
<title>Ange Nyheter</title>
</head>

<body bgcolor="#FFFFFF">

<form action="skapa.php" method="post">
Användare: <input type="text" name="ANV"><br>
Alias/Pseudonym: <input type="text" name="ALI"><br>
Ange din nyhet: <textarea cols="60" rows="5" name="NYH">Skriv nyheten här!</textarea><br>
Veckodag: <input type="text" name="VEC"><br>
Månad: <input type="text" name="MAN"><br>
År: <input type="text" name="AR"><br>
Tid: <input type="text" value="xx : xx" name="TID"><br>
<input type="submit" value="Skicka" name="SKICKA">
</form>
</body>
</html>

<?php

	}

?>

skapa.php

<?php

if (!$SKICKA)
	{
	echo "<html>\n";
	echo "<head>\n";
	echo "<title>Fel</title>\n";
	echo "</head>\n\n";
	echo "<body>\n\n";
	echo "Du har inte rättigheter att besöka denna sida.\n\n";
	echo "</body>\n";
	echo "</html>\n";
	}
else
	{
	$SV[0] = $ANV;
	$SV[1] = $ALI;
	$SV[2] = $NYH;
	$SV[3] = $VEC;
	$SV[4] = $MAN;
	$SV[5] = $AR;
	$SV[6] = $TID;

	$FilNamn = "nyheter.txt";
	$OppnaFil = fopen($FilNamn, 'a');
	$Text = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tr>\n<td>$SV[2]</td>\n</tr>\n</table>\n<br><br>\n";

	fputs($OppnaFil, $Text);
	fclose($OppnaFil);

	echo "Allt är klart.";
	}

?>

.....nu till mina frågor, om det nu är någon som har orkat läsa igenom alltihop :e

  1. Hur hög är säkerheten när det är skrivet på detta sätt?
  2. När jag kört filen en gång och vill besöka sidan igen så får jag fram adressen i adressfältet med lösenord och allt!, det är ju inte så bra. Hur fixar jag det?

------------------
"På min tid hade vi inga stenar. Vi fick gå ner till bäcken och tvätta våra
kläder genom att banka dem med huvudet."

[Redigerat av oelbal den 18 mar 2001]

Alpha IIMedlem sedan maj 20002 993 inlägg
#2
  1. Inte hög! eftersom du inte kollar lösenordet och användarnamnet i skapa.php. Om nån skriver:

skapa.php?submit=true&ANV=bla&ALI=snobben&NYH=jag är bäst&VEC=2&MAN=2&AR=2001&tid=10:10

så kommer informationen att sparas utan att man behöver skriva in några lösenord! :l

  1. Istället för post ska du använda get (tror jag iaf)

------------------
[klicka exakt precis här]

oelbalMedlem sedan jan. 20014 973 inlägg
#3

Alpha II >> angående lösenord

Skall lägga in en lösenordscheck där med.....

Get?, nja, nu blir jag lite fundersam...

Skall gömma sidan långt in på min egen sida, så det lär ju inte bli så mycket hackande iaf...... :e

------------------
"På min tid hade vi inga stenar. Vi fick gå ner till bäcken och tvätta våra
kläder genom att banka dem med huvudet."

QonosMedlem sedan sep. 2000438 inlägg
#4

Nu när frågan ändå är uppe så...

Jag har gjort såhär när jag har gjort sidor med lösenord att jag har tex:

login.phtml
formen (med post)

confirm.php
här skickas man till när man skirvet i formen.. om användarnamn och lösenord stämmer överens med det i databasen så sätter jag en siffra (vilken är användarens id nummer i databasen) i en session.

inloggad.phtml
här har jag en if-sats som kollar att man är inloggad, genom att se om sessions med id nummret finns.. finns den så hämtar den ut uppgifterna fråna databasen med hjälp av det id nummret..

hur säkert är detta?
Är det möjligt att man kan fejka en session?

BitstateMedlem sedan nov. 2000432 inlägg
#5

nepp, POST är det som skall användas för att det inte skall bli www.minsida.com/?anvandare=root&pass=mintkrokant .

[Redigerat av Bitstate den 19 mar 2001]

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)