Die Überschrifft dieser Antwort sollte
fett,
unterstrichen und GROSS geschrieben sein.
Wenn du dies nie vergisst hast du die halbe Miete.
Eine Überprüfung per JavaScript ist NIE sicher. Dies kannst du höchstens einsetzen um dem Besucher schnell und ohne Absenden des Formulars Fehler anzuzeigen. Um deine Anwendung sicher zu machen MUSST du immer Serverseitig validieren.
Wenn die z.B. eine ID übergibst, sei es per GET oder POST oder sie aus dem COOCKIE holst kannst du ganz simpel mit is_numeric überprüfen ob es sich um eine Zahl handelt.
Wenn du nur ganz bestimmte Werte erwartest, dann musst du natürlich auf diese
prüfen. Z.B. grösser,kleiner als
if ($_GET['x] >= 1 && $_GET['x] <= 10) {...}
Oder du gibst eine Reihe Werte in ein Array und
prüfst ob der übergebene darin vorkommt.
if ( in_array($_GET['x], array(1,2,5,8)) ) {...}
Wenn du die ID an die Db übergen willst, z.B. in einem SELECT, dann kannst du sei ganz einfach nach int casten, also in eine Ganzzahl umwandeln
(int)$_GET['x].
Bei Strings wird es wieder komplizierter. Dieser könnte Schadcode enthalten.
Mach dich hierbei vor allem SQL-Injection schlau. Hier mal ein erster Ansatz:
https://de.wikipedia.org/wiki/SQL-Injection. Hierbei ist das Schalgwort mysql_real_escape_string() wichtig. Les dich da unbedingt rein.
Dabei geht es darum, dass Schadcode deine Datenbank zerstören oder was meist noch schlimmer ist, sensible Daten auslesen und an den Angreifer zurückgeben könnte.
Cross-Site-Scripting (XSS) wird oft unterschätzt, ist aber mindestens genauso ernst zu nehmen - siehe hier
https://de.wikipedia.org/wiki/Cross-Site-Scripting.
Viele Seiten sind sicher vor SQL-Injections. Durch XSS sind sie aber wieder anfällig durch Identitätsdiebstahl. Wichtig hierbei: Wenn du etwas über die besagten GET, POST, etc. entgegen nimmst, dann darft du dies nicht ungefiltert wieder zurück auf die Seite lassen. Bsp. du hast ein Form und wenn der Benutzer falsche Weingaben gemacht hat und die ihn wieder aufs Formular zurückschickst und das Formular mit seine bereits getätigten Angaben vorausfüllst. Dies könnte ein Angreifer benutzen um einer Person z.B. einen Link per Mail zu schicken. Darin könnte dann evtl. ein falsches Formular angezeigt werden welches zur Eingabe von Passwort auffordert und dieses statt an deinen Server, an den des Angreifers sendet.
Alles in allem denke ich, dass du dich noch gründlich damit auseinandersetzen solltest.