Jump to content
php.lv forumi

Poll iesakumam


strong-storm

Recommended Posts

Vajag poll, bet nezinu ko njemt pamatā!!!

JA nemam IP, tad mēģinājums aplaužas piet tā, ka Dial-UP lietotāji balsos cik gribēs, jo katru reizi iezvanoties lietotājam tiek piešķirta cita IP!!! ;)

JA cepumus, tad cepumi tiks izmesti un atkal nekadas jegas!!! :o

 

Ir kādiieteikumi/pieredze utt!!! :rolleyes:

Link to comment
Share on other sites

Cookies meklēt un dzēst nav nepieciešams. pietiek vienkārši aizliegt viņus un visas lietas - lielākajā vairumā pollu tādā veidā var balsot cik tik tīk.

 

A ja nopietni, tad pollu, kurā nebūtu iespējams krāpties uztaisīt ir pietiekoši sarežģīti un lielākajā daļā gadījumu tas nav nepieciešams.

 

Var izmantot vai nu tikai cookies, vai arī pielikt kaut kādu max_votes_per_ip uz 10 un gatavs. Tā teikt, nevajag pārāk iespringt;)

Link to comment
Share on other sites

Ja balsoshana noteikti ir vajadziiga preciiza, lai lielaaka iespeeja, ka kaads vairaakas reizes balso, var taisiit registraaciju, t.i. kad balstojaajs nospiezh pogu balsot, vinjam tiek pieprasiits ievadiit lietotaajvaardu un paroli, kuri glabaajas db, ja vinjam nav sava tad registraacija. Citu variantu nezinu. Protams, uz shaada principa tiks pazaudeeti daudzi balsotaaji.

Edited by azpage
Link to comment
Share on other sites

Absolute paranoia. Mani 8 padomi kā liegt lietotājiem manipulēt ar svarīgiem datiem:

 

1. Ienāk balsošanas lapā - atveras sessija [session_start()], tajā glabājas pārbaude, cik reizes ir nobalsojis (resp. if ($_SESSION['voted']) neakceptē) - tādā veidā neļaujam balsot vairākkārt vienas pārlūka sesijas ietvaros (pirms balsot vēlreiz pārlūks jāaizver un jāatver no jauna).

2. Mēģina saglabāties kūkijs / ar to pašu fīču pārbaudi.

3. Iekš db saglabājas un tiek pārbaudīts pilns $_SERVER [...] REMOTE_ADDR, HTTP_X_FORWARDED_FOR, HTTP_CLIENT_IP salikums (IP ko saņēmis serveris/ IP, kuru nododis proxy/IP, ko var nosūtīt pārlūks savas pieklājības pēc).

4. Ja saitā ir kāda ielogošanas sistēma, tad ielogotiem lietotājiem izdara savu ierakstu par nobalsošanu un pārbauda otrreizējo ievadu pēc tās.

5. $_SERVER['HTTP_REFERER'] pārbaude (ķipa lai balsotu tikai no tava saita)

6. Formas mainīgo nosaukumu dinamizēšana, piem. izvadot izmantot <input name="'.session_id().'_balsot" /> un pārbaude if (!empty($_POST[session_id().'_balsot'])), un/vai ieviešot formas elementu nosaukumos arī random elementu, kas mainās katru reizi norefrešojot lapu:

 

apstrādājam iepriekšējo nohashoto submitu, ja tāds ir bijis -

if (!empty($_POST[$_SESSION['hash'].'_balsot']))

pārbaudām rezultātus un ieglabājam, uzstādot attiecīgos "flag"us sesijās un cūkijos

 

noģenerējam jauno hashu

$_SESSION['hash']=session_id().rand(0,100);

 

izvadām formu elementus nosaukumiem piesaistot jaunu $_SESSION['hash']

 

7. ievadām kūkijā/sessijā papildus taimoutu (par kuru tiek paziņots lietotājam, ķipa next vote in 30 seconds).

 

8. atbildes variants tiek ievadīts pašrocīgi/no attēla.

 

2. un 3. ne vienmēr dod vēlamo rezultātu (piem 2. var arī liegt nobalsot citai personai, kas pārlogojusies tajā pašā datorā, ja tas ir daudzmaz "publisks"/viens logins mājas datorā), 4. var pieļaut vienam un tam pašam/i nobalsot divas reizes - ielogotam/i un neielogotai, bet, manuprāt, 1. vismaz var atsist "vēlēšanos" balsot vairākkārt (jāver ciet browseris, jāiet uz adresi, jāizvēlas variants, jāspiež submits, atkārtot). 5 un 6 minimizē "leeching" iespējas balsot no cita saita/simulēt HTTP pieprasījumus/refreshus. 7. iet papildus "iebiedēšanai", bet arī var nostrādāt. 8. tāpat nogurdina, bet ir diezgan efektīvs (sk. lmt sms servisu).

Link to comment
Share on other sites

Nu tā:

1) es domaju, ka darīšanās ar cepumiem ir lieka, tapēc, ka +/- norm fire wall reģistrē visus cepumus un velak tos var viegli izmest!!!

2) Ip reģistrācija, manuprāt, ir daudz drošāka, uz patstāvīgo ip viss ok!!!

mīnusi šim - dial-up, Mdsl, kā arī vieta uz MySQL, kaut gan par MySQL neko nezinu :(

3)Par pārējo šaubas nav, tas ir vajadzīgs.

4)Vai nav kāds turoālis, kā to vislabāk darīt?

Link to comment
Share on other sites

2) Ip reģistrācija, manuprāt, ir daudz drošāka, uz patstāvīgo ip viss ok!!!

mīnusi šim - dial-up, Mdsl, kā arī vieta uz MySQL, kaut gan par MySQL neko nezinu :(

Ir vēl tāda lieta, kā lielāki uzņēmumi, kuriem ir viena pati ārējā IP adrese, un kuru maģiskais firewall/proxy nesaka, kāda ir iekšējā - attiecīgi tu riskē, ka kāda daļa no taviem unikālajiem apmeklētājiem nevarēs nobalsot ;)

Link to comment
Share on other sites

×
×
  • Create New...