"Twoje odpowiedzi zostały poprawnie wysłane do sprawdzenia. Wyniki sš dostępne tutaj: kliknij "
Reszta wygląda w porządku
(pozwoliłem sobie przeprowadzić prymitywny teścik na SQL injection, mam nadzieję, że się nie obrazisz ;> zwłaszcza, że wygląda wszystko na ok)
MapY [Usunięty]
Wysłany: 29-03-2009, 23:24
Hehe, SQL injection w tym wypadku nic nie da - wszystko jest oparte na plikach tekstowych Co do zabespieczeń to jeszcze będzie wszystko uelpszone i poprawione. Zastanawiają mnie tylko jeszcze 2 kwestie:
* co zrobić z podszywaniem się pod nicki (ktoś może wysłać odpowiedzi podając inny nick - i może być kilka odpowiedzi od tego samego gracza...)
* czy gdy dziesiątki osób w jednym czasie będą wysyłać odpowiedzi, to mogą wystąpić błędy związane z dostępem i zapisem do pliku, nie jestem w stanie przetestować tego co się będzie działo, może ktoś ma jakieś doświadczenia? Wszystkich odpowiedzi może nie zapisać, może się plik uszkodzić czy co...
* czy gdy dziesiątki osób w jednym czasie będą wysyłać odpowiedzi, to mogą wystąpić błędy związane z dostępem i zapisem do pliku, nie jestem w stanie przetestować tego co się będzie działo, może ktoś ma jakieś doświadczenia? Wszystkich odpowiedzi może nie zapisać, może się plik uszkodzić czy co...
Właśnie dlatego lepiej korzystać z bazy danych. W każdym razie zawsze można sobie radzić na około blokując plik tylko dla jednokrotnego zapisu.
[GM] MapY napisał/a:
* co zrobić z podszywaniem się pod nicki (ktoś może wysłać odpowiedzi podając inny nick - i może być kilka odpowiedzi od tego samego gracza...)
Myślałem, że po to właśnie są podawane dane do konta. Chyba że chodzi Ci o ludzi z 50 kontami na s3. Ale jeśli będzie ograniczenie czasowe, to nie zdąży wypełnić testu 50 razy ;> Poza tym zawsze możesz badać IP czy co tam jeszcze innego. Wiem, że to proste do obejścia, ale lepiej to niż nic.
MapY [Usunięty]
Wysłany: 30-03-2009, 00:00
Pitazboras napisał/a:
[quote="[GM] MapY"]* czy gdy dziesiątki osób w jednym czasie będą wysyłać odpowiedzi, to mogą wystąpić błędy związane z dostępem i zapisem do pliku, nie jestem w stanie przetestować tego co się będzie działo, może ktoś ma jakieś doświadczenia? Wszystkich odpowiedzi może nie zapisać, może się plik uszkodzić czy co...
Właśnie dlatego lepiej korzystać z bazy danych. W każdym razie zawsze można sobie radzić na około blokując plik tylko dla jednokrotnego zapisu.[/quote]
Tak też właśnie jest to zrobione, ale gdy ktoś będzie chciał międzyczasie zapisać coś do pliku gdy on jest zablokowany z powodu że ktoś inny teraz zapisuje, to temu drugiemu próba zapisu się nie powiedzie i nici z odpowiedzi...
Plik bazy danych:
http://pach.dmkproject.ne...FO_II/xtest2.db Przy około 100 zgłoszeń (tylko 5 pytać jest aktualnie) rozmiar pliku to 16 KB więc nie jest tak źle, tym bardziej że jest zapisywany i IP i UserAgent. Może jeszcze maca sie da zapisać?
Tak też właśnie jest to zrobione, ale gdy ktoś będzie chciał międzyczasie zapisać coś do pliku gdy on jest zablokowany z powodu że ktoś inny teraz zapisuje, to temu drugiemu próba zapisu się nie powiedzie i nici z odpowiedzi...
Kod:
<?php
// waiting until file will be locked for writing (1000 milliseconds as timeout)
if ($fp = fopen($fileName, 'a')) {
$startTime = microtime();
do {
$canWrite = flock($fp, LOCK_EX);
// If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load
if(!$canWrite) usleep(round(rand(0, 100)*1000));
} while ((!$canWrite)and((microtime()-$startTime) < 1000));
//file was locked so now we can store information
if ($canWrite) {
fwrite($fp, $dataToSave);
}
fclose($fp);
}?>
[GM] MapY napisał/a:
Plik bazy danych:
http://pach.dmkproject.ne...FO_II/xtest2.db Przy około 100 zgłoszeń (tylko 5 pytać jest aktualnie) rozmiar pliku to 16 KB więc nie jest tak źle, tym bardziej że jest zapisywany i IP i UserAgent. Może jeszcze maca sie da zapisać?
Rozmiarem bym się nie przejmował... Jak tylko nikt nie zrobi świni próbując zapchać plik, to nie powinien on osiągnąć zbyt dużego rozmiaru.
* co zrobić z podszywaniem się pod nicki (ktoś może wysłać odpowiedzi podając inny nick - i może być kilka odpowiedzi od tego samego gracza...)
a jeżeli np. kumpel nie ma neta i z naszego kompa wysyła odpowiedzi na internet?
to by nie byly wysłane odpowiedzi naszego kumpla tylko nasze więc jeszcze trzeba pomyśleć nad tym...
a jeżeli np. kumpel nie ma neta i z naszego kompa wysyła odpowiedzi na internet?
to by nie byly wysłane odpowiedzi naszego kumpla tylko nasze więc jeszcze trzeba pomyśleć nad tym...
Jednocześnie napiszecie ten test ?
A skoro nie ma neta to niech cierpi bądź zaloguje się w kafejce
lub w ostateczności u kolegi, który nie gra w Mf ?
Nie chodzi mi o to...
Ale gdyby później napisał ten test to by nie było odpowiedzi ale gdyby wcześniej to ja bym mógł nie dać.
Ale jest taka możliwość że kafejka jest w naprawie.
A tak wogóle to każdy mój kolega gra w MFO więc
Kod:
lub w ostateczności u kolegi, który nie gra w Mf ?
no to nie napisze po prostu ... co rozmyślać gdyby np kafejka była nieczynna czy też gdyby później napisał ten test... nie ma neta to niech cierpi a nie bedzie szukał dziury w całym ...
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach