powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Спроектировать таблицу, если выборка по строкам
10 сообщений из 35, страница 2 из 2
Спроектировать таблицу, если выборка по строкам
    #40125362
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morgot
Допустим, на сайте сидят 100 тыс человек, регится 100001ый .

- то есть предполагается, что логин и пароль как у нормальных людей таки присутствуют, раз всё таки "регится"....
- нужно только дополнительно хранить "пачпорт" для выявления клонов ?

Ну тогда можно хранить не 32 символа, а их контрольную сумму, хорошие алгоритмы с вероятностью повтора хотя бы 1 на 65 000 комбинаций приведут 32 символа к такому типу суммы АF03E (максимум 5 символов), их и хранить за юзером...
Алгоритм простой - засуммировал 32 символа от нового юзера, получил их сумму и ищешь именно эту сумму среди существующих, не нашел - записал нового юзера и его сумму в БД, нашлась сумма - принимай меры что хотел...
Как сделаешь, дай ссылку сайта на почту (в профиле есть) я зарегистрируюсь раз 5 и пришлю тебе свои логины...
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125369
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morgotDEFAULT '' - это автоматом создалось, не знаю что туда писать, можно и NULL в
принципе

Вот поэтому скрипты создания таблиц надо писать ручками, а не мышкой натыкивать.
Просто убери этот DEFAULT вообще.

morgotв http нет, но сам браузер - да
Телепатически, не иначе...

После выпиливания FTP, HTTP осталось единственным протоколом, поддерживаемым
браузерами и, соответственно, единственным способом что-то передать на сервер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125374
morgot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag

Ну тогда можно хранить не 32 символа, а их контрольную сумму, хорошие алгоритмы с вероятностью повтора хотя бы 1 на 65 000 комбинаций приведут 32 символа к такому типу суммы АF03E (максимум 5 символов), их и хранить за юзером...
по CRC32 - спасибо, надо опять же потестить коллизии, но может и норм будет; + в mysql вроде есть встроенная функция для рассчета контрольной суммы.
Dimitry Sibiryakov

morgotв http нет, но сам браузер - да

Телепатически, не иначе...

После выпиливания FTP, HTTP осталось единственным протоколом, поддерживаемым
браузерами и, соответственно, единственным способом что-то передать на сервер.
Вычисление параметров браузера идет не по протоколу хттп, не так выразился - не в плане что заголовки какие-то берутся или еще что. А JAVASCRIPT получает параметры браузера (шрифты, экран, и т.д. и т.п.). Без яваскриптов толку крайне мало, один юзерагент, который меняется.
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125380
fkfka2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
morgot
Вычисление параметров браузера идет не по протоколу хттп, не так выразился - не в плане что заголовки какие-то берутся или еще что. А JAVASCRIPT получает параметры браузера (шрифты, экран, и т.д. и т.п.). Без яваскриптов толку крайне мало, один юзерагент, который меняется.

Ну хорошо. У меня экран 3840х2160. Что это даст в решении задачи "отличи клона"?
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125382
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkfka2,

это уже другая тема... ТС у интересно только как спрятать и потом найти 32 символа 100 тыщ раз...
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125403
morgot
Задача. Есть веб сайт (форум,соц. сеть, не суть). Для каждого пользователя генерируется уникальный идентификатор на основе данных браузера и подобного. Он выходит размером 32 символа. Уменьшить или изменить его нельзя. Перевести на смс-активацию, привязку к айпи и т.д. тоже нельзя. Только вот уникальный айди, который генерится особым образом, практически не дает коллизий и сбоев. Допустим, на сайте сидят 100 тыс человек, регится 100001ый . Нужно проверить, не является ли он клоном кого-то из этих товарищей . Исходя из этого, нужно спроектировать таблицу.

на уровне приложения - это всё медленно и уронит сайт при наплыве ботов. Надо выносить хотя бы в Nginx, а лучше в iptables.
А ещё, это всё полная ерунда, и против нормальных ботов не сработает. Там прокси и полностью рандомные браузерные данные.

Вот простое решение, которое пришло на ум:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
// в css-файле (именно в файле, а не inline css) создаем новый класс:
.bgimage {
    background-image: url('bg.gif');
    width: 1px;
    heigth: 1px;
}

// в html коде на любой видимый элемент в начале (лучше в шапке) сайта вешаем класс:
<div class="bgimage"></div>

// в nginx:
http {
    log_format ips_only '$remote_addr';
}

// создаем новый специальный location:
location = /bg.gif {
    empty_gif;
    if ($not_bot) {
        access_log /var/log/nginx/bgimage_access.log ips_only;
    }
}
    
// и добавляем логирование неботов
location / {
    if ($not_bot) {
        access_log /var/log/nginx/notbot_access.log ips_only;
    }
}
  
$not_bot - кастомная переменная, в которой вычислили, что текущий юзер не является хорошим ботом, т.е. это не google bot, не яндекс бот и тд, лучше это сделать через map {}

// в итоге получим 2 файла:
notbot_access.log - потенциальные хорошие юзеры с полноценными браузерами, которых еще раз хотим проверить, боты они или нет
bgimage_access.log - те же самые юзеры, но которые помимо загрузки html, еще загрузили картинку

те, которые есть в notbot_access.log, но нет в bgimage_access.log - боты
надо grep-ом сравнить 2 файла и разницу двух множеств записать в черный список IP. Делать это можно по крону каждые N минут.
При сравнении файлов учесть пограничные случаи, когда в один лог успел попасть IP, а в другой не успел. Поэтому из notbot_access.log лучше с конца убрезать последние N секунд.

...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125404
Dimitry Sibiryakov
После выпиливания FTP, HTTP осталось единственным протоколом, поддерживаемым
браузерами и, соответственно, единственным способом что-то передать на сервер.

scp
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125406
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morgot
miksoft
Сделайте это поле первичным ключом. Будет и скорость, и уникальность.
Тип данных, правда, дает некоторые сомнения, но для начала сойдет и CHAR(32).
Если покажете реальные значения, которые там предполагается хранить, то может еще чего присоветуем.

Первичным? Думал, что в базах данных всегда желательно первичным делать INT , т.к. в нем auto increment, и вроде как база сама создает такое значение, если не указать явно? или путаю?
Автоинкремент используют, когда нет подходящего внешнего источника ключей. У вас же он есть.
Технически, конечно, никто не запрещает сделать и автоинкрементный INT, а на ваш CHAR(32) наложить отдельный индекс с уникальностью. Но зачем, когда можно совместить?
И выборка будет быстрее идти, т.к. прочитать запись из таблицы по первичному ключу будет быстрее,чем сначала получить первичный ключ из индекса, а потом все равно читать таблицу по первичному ключу.

Комментарий для остальных - в MySQL основной тип таблиц на текущий момент - это InnoDB, а у него все таблицы являются IOT в терминах Оракла.
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125412
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчикscp

Какой браузер его поддерживает?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Спроектировать таблицу, если выборка по строкам
    #40125417
Dimitry Sibiryakov
бабушкин зайчикscp

Какой браузер его поддерживает?
а ты собрался через браузер заливать НА сервер что-то?
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Спроектировать таблицу, если выборка по строкам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]