Jump to content
php.lv forumi

Input drošība


daGrevis
 Share

Recommended Posts

Sveiki,

Nedaudz uzlaboju drošību savam kodam...

 

<input type="checkbox" name="rules" id="rules">

 

Vai nav tiesa, ka hakeris kaut vai ar to pašu FireBug var nomainīt "type" uz tekstu un tad submit'ot ko ļaunu? Škiet jā.

Kādai vajadzētu izskatīties pārbaudei? (pret ko sliktu)

 

Nu, piemēram, "username" man ir šādi...

 

function is_username($username)
{

 return preg_match('/^[a-zA-Z0-9-_]{5,25}$/', $username);
 // What about "."?

}

if(!is_username($username)) {

 $_SESSION['human_error'] = 'The submited username is not valid!';
 redirect("{$root}/register.php");

}

Link to comment
Share on other sites

Jā, to es jau esmu sapratis. =)

 

Tikai, lietotājs var submitot jebkādus datus tagad. Tad es vienkārši ensaprotu kādu regex'u meklēt/taisīt?! =D Vai ne regex'u...

Link to comment
Share on other sites

Pārbaude, kura, ja ir atķeksēta,ļauj reģistrēties. Pārbaudām, vai lietotājs piekrīt, ka ir vecāks par 13 gadiem.

 

if(!isSet($age)) {

 $_SESSION['human_error'] = 'You can\'t register if you are younger then 13!';
 redirect("{$root}/register.php");

}

Link to comment
Share on other sites

Vai nav tiesa, ka hakeris kaut vai ar to pašu FireBug var nomainīt "type" uz tekstu un tad submit'ot ko ļaunu? Škiet jā.

Priekš kam tāds čakars, ja ne GET, ne POST neatšķir lauku tipus? Tiem ir tikai fieldname un value. Čekbox value vietā var kaut Karš un miers ķīniešu tulkojumā aizsūtīt.

Link to comment
Share on other sites

Čeckboksus un radio pogas ir jāpārbauda ar isset()

 

<?php
// 1) čekojam čeckboxu
if(isset($_POST['checkbox'])) {
// 2) čeckojam vai kāda no radio pogām ir iespiesta
if(isset($_POST['radio'])) {
// čeckojam kura radio poga ir piespiesta
if($_POST['radio']==1) {
// un reāli...
}
elseif($_POST['radio']==2) {
// ...šitās radio pogu values...
}
elseif($_POST['radio']==3) {
// ...pārbaudi ar PHP un nelaid klāt SQL, un viss būs oki ;) 
}
}
}
?>
<form action='' method='post'>
<input type='radio' name='radio' value='1' />
<input type='radio' name='radio' value='2' />
<input type='radio' name='radio' value='3' />
<input type='checkbox' name='checkbox' />
</form>

Edited by emsy
Link to comment
Share on other sites

Tieši tā, man ar isSet() jau bija... Bet tikko man aizgāja. Kāpēc man viņas filtrēt, ja man vajag tikai uzzināt, vai ir atķeksētas... =/ Nav taču dotie dati jāsaglabā datubāzē vai jāparāda lietotājam. =)

P.S. Ņemšu vērā briedis padomu un sākšu domāt. =D

Link to comment
Share on other sites

Ja tev ir radio buttons, tad gan būs jāčeko vērtība...

bet to var darīt šādi:

 

switch($_POST['radio_poga']){
case 'vertiba1' : 
  //do stuff
  break;
case 'vertiba2' : 
  //do stuff
  break;
case 'vertiba3' : 
  //do stuff
  break;
default :
  //Defaultais stuffs (ja kāds h4x0rs mēģina ļevās vērtības iesūtīt)
}

Edited by briedis
Link to comment
Share on other sites

briedis, switch..case neatšķir tipus, līdz ar to, viņam 0 būs vienāds ar 'asdf'. Labāk:

switch (true){
  case (a === b)
}

Par tēmu: labakais variants ir veidot sarakstu ar visiem iespējamiem variable nosaukumiem, katrai grupai piesaistīt validāciju.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...