Hej. Jag har en hemsida med ett registrerings-formulär.
En vän till sa att han hade testat att registrera sig via ett HTML-formulär som han skapat lokalt på sin dator och sedan angivit min hemsida som action.
Det känns som jag vill skydda mig mot detta. Därför byggde jag denna funktion, som verkar fungera utmärkt.
function check_referer()
{
if($_SERVER['REQUEST_METHOD']=='POST')
{
if
(
!isset($_SERVER['HTTP_HOST']) or
!isset($_SERVER['HTTP_REFERER']) or
!ereg($_SERVER['HTTP_HOST'],$_SERVER['HTTP_REFERER'])
)
return false;
else
return true;
}
else
return true;
}
Frågan är: Är funktionen något att ha? Kan det uppstå problem?
Jag antar att man kan bluffa referer ändå, men funktionen borde väl skydda de flesta försök.
Man kan bluffa referer rätt enkelt om man vill. Själv funderar jag närmast på vad det är du vill kontrollera, och varför. Om någon registrerar sig genom ett formulär som inte finns på din site, vad spelar det för roll? Vad är det egentligen du försöker förhindra genom att tvinga folk att registrera sig via ett formulär som verkligen finns på din site? Varför skulle någon överhuvudtaget komma på idén att lägga upp ett särskilt formulär enbart för att kunna registrera sig på din site? Det är ju enklare att använda formuläret som redan finns på din site.
Det är möjligt att det finns bra skäl för dig att förhindra sådant. Kanske dessa skäl skulle kunna ge uppslag till någon idé om hur man förhindrar detta?
Tänk på att många personliga brandväggar tar bort referer variabeln eller ändra variabeln så det är inget säkert skydd att lita på att referer är satt.
Ett sätt är att godkänna om den är tom/ej satt eller innehåller din saijt, är den satt till någor annat neka registrering,
... Det är möjligt att det finns bra skäl för dig att förhindra sådant. Kanske dessa skäl skulle kunna ge uppslag till någon idé om hur man förhindrar detta?
En sak att tänka på är att se till att utföra ALL säkerhetskoll av variabler i den PHP-sida som tar emot resultatet. Detta oavsett om du har kontroller för vissa saker via JavaScript i själva sidan eller inte. Det gäller inte bara login/registrering, det gäller 100% av all användning av GET, POST och COOKIE. Blotta faktum att det finns folk som kan komma på idén att göra den här typen av skript någon annanstans innebär att denna koll i den mottagande sidan är nödvändig.
Vi har ett upplysande exempel någonstans på wF..., jag ska se om jag kan hitta det... Det gick. Börja läsa vid länkat inlägg och neråt så förstår du varför det är viktigt!!!