BG Development


Страници: (6) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> За таймерите и управлението по време
johnfound
Публикувано на: 30-05-2018, 15:03
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 6205
Регистриран на: 27.05.04



Използването на таймери е винаги грешно. Ето, моят форум няма никакви управления по таймери и досега никой не го е зафлудил, даже малкото ботове, които успяват да се регистрират.

П.П. А аз всъщност, тъй като форума е тестов, нямам нищо против малко флуд, да се понапълни базата данни. icon_lol.gif


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 30-05-2018, 16:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1651
Регистриран на: 17.01.17



Не се ползва таймер за това.
Поне, не би трябвало да се ползва.
PMEmail Poster
Top
40oz
Публикувано на: 30-05-2018, 16:27
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 167
Регистриран на: 23.05.13



QUOTE (johnfound @ 30-05-2018, 15:03)
Използването на таймери е винаги грешно. Ето, моят форум няма никакви управления по таймери и досега никой не го е зафлудил, даже малкото ботове, които успяват да се регистрират.

Интересно ми е ако се добави функционалност да се праща мейл с новите теми в 8ч всяка сутрин как ще се направи без таймери?
PMEmail Poster
Top
johnfound
Публикувано на: 30-05-2018, 17:32
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 6205
Регистриран на: 27.05.04



QUOTE (thrawn @ 30-05-2018, 17:13)
Не се ползва таймер за това.
Поне, не би трябвало да се ползва.

Формално да, но управление по интервал време все пак има. А именно това е порочна практика.


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
johnfound
Публикувано на: 30-05-2018, 17:33
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 6205
Регистриран на: 27.05.04



QUOTE (40oz @ 30-05-2018, 17:27)
Интересно ми е ако се добави функционалност да се праща мейл с новите теми в 8ч всяка сутрин как ще се направи без таймери?

Просто не трябва да се прави такава функционалност. Трябва да се анализира какво се цели с такава функция и да се реализират целите по правилния начин.

В случая аз бих го направил или да се изпраща отделен имейл за всяка нова тема (според мене най-доброто решение) или да се групират в пакети по определен брой и да се изпращат тогава.

Във вторият случай, може да се сложи време като fall-back, тоест ако примерно до 24 часа не се е събрал нужният брой се изпращат колкото са се събрали.

Забележи, че в използването на времето като последен резервен вариант е допустимо, но не и като основна логика.

Това мнение е било редактирано от johnfound на 30-05-2018, 17:39


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
relax4o
Публикувано на: 30-05-2018, 17:46
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1979
Регистриран на: 04.04.07



QUOTE (johnfound @ 30-05-2018, 15:03)
Използването на таймери е винаги грешно. Ето, моят форум няма никакви управления по таймери и досега никой не го е зафлудил, даже малкото ботове, които успяват да се регистрират.

П.П. А аз всъщност, тъй като форума е тестов, нямам нищо против малко флуд, да се понапълни базата данни. icon_lol.gif

Влизат само асемблер фенове, а те са над тези неща. icon_lol.gif

Какво подразбра като споменах таймер?


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
johnfound
Публикувано на: 30-05-2018, 17:51
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 6205
Регистриран на: 27.05.04



QUOTE (relax4o @ 30-05-2018, 18:46)
Влизат само асемблер фенове, а те са над тези неща. icon_lol.gif

Какво подразбра като споменах таймер?

Всъщност влизат главно уеб девелопери. Напоследък гледам, по социалните мрежи ме линкват всеки път, когато стане дума за бързи сайтове. icon_lol.gif Също маса ботове, включително спамботове, но те като правило не успяват да се регистрират.

А под "таймер" разбирам всякакво управление в което поведението зависи от изтичането на някакъв временен интервал, независимо как е имплементирано.


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
relax4o
Публикувано на: 30-05-2018, 18:01
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1979
Регистриран на: 04.04.07



Да, но такава функционалност как би я направил без какъвто и да е вид таймер? Аз поне не мога да си представя.
Остави настрана "по принцип не трябва да има такова нещо" и да приемем, че има, както е в случая.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
thrawn
Публикувано на: 30-05-2018, 18:06
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1651
Регистриран на: 17.01.17



Ми ползва се евент на часовника. Ако се следва трактовката на if то към часовника трябва да могат да се регистрират наблюдатели.
PMEmail Poster
Top
johnfound
Публикувано на: 30-05-2018, 18:28
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 6205
Регистриран на: 27.05.04



QUOTE (relax4o @ 30-05-2018, 19:01)
Да, но такава функционалност как би я направил без какъвто и да е вид таймер? Аз поне не мога да си представя.
Остави настрана "по принцип не трябва да има такова нещо" и да приемем, че има, както е в случая.

Ако в заданието е написано, че трябва да се използва време, много ясно, че няма как да го направиш без време. icon_lol.gif

Да видим за каква функционалност говорим? Да се защити форума от автоматично поствани голям брой съобщения. Да формулираме задачата:

1. Ботовете да не могат да постват много съобщения с голяма скорост.
2. Потребителите да могат да постват колкото си искат съобщения.

Това си е част от функционалността за защита от ботове въобще. Тоест, във форума ботове не трябва да могат да постват изобщо. Защитата с таймер реално не е част от тази защита, защото тя няма да спре ботовете да постват, пък макар и през 15 секунди. Обратно, това пречи на потребителите, защото на мене например често ми се случва да постна съобщение, да видя някаква грешка в текста, да вляза да си я оправя и да не мога да постна, защото не са минали 15-те секунди.

Аз го правя по следния начин (който едновременно защитава и от CSRF атаки): Във формата има скрито поле в което се записва уникален случаен стринг. Същият стринг се записва и в сесията на потребителя в базата данни. Това се прави при рендиране на формата, когато потребителя кликне на post new message. Когато сървъра приеме POST заявката просто сравнява скритото поле със записа в БД и поства съобщението само ако двата стринга съвпадат. Стринга от сесията се изтрива, независимо от резултата на операцията, тоест той е еднократен.

Ботовете, особено тези, които искат да правят флуд атака, обикновено не се затрудняват да четат формата, а директно изпращат POST заявки. И естествено не успяват да постнат нищо. Същото се случва и при опит за CSRF.

Защитата е достатъчно ефективна – въпреки, че ботове се появяват редовно, много малко от тях успяват да се регистрират, а още по-малко да постнат нещо. Флуд атаки със голямо количество съобщения не съм имал никога, въпреки, че ограничения няма и енджина може да поеме стотици съобщения в секунда без да се затрудни.


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (6) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0