Последние сообщения

Андрей Живов
Андрей Живов
  • Сообщений: 16
  • Последний визит: 14 февраля 2025 в 23:39

Вы столкнулись с проблемой «бумажки на мониторе», то есть не озаботились безопасностью данных на должном уровне, и теперь пытаетесь вместо того чтобы более серьезно отнестись к общей безопасности, найти 1 «универсальное» решение, которого нет.


В общем случае достаточно вынести чувствительные данные выше документ рут и исключить файлы с ними из репозитория, внеся в гитигнор. Все остальные телодвижения никак не повышают общую безопасность, и любые меры сокрытия реквизитов упираются в небезопасность хранения проекта, дырявость самого сервера или недостаточную изоляцию чувствительных данных от кода.

Основным общепринятым «правильным» методом хранения паролей на сегодня является использование .env файла, он лежит выше документ рут, имеет атрибут скрытого по умолчанию в линукс системах, а так же большинство IDE автоматически вносят такие файлы в гитигнор, то есть сразу удовлетворяет большинству требований.

Иван Терешенко
Иван Терешенко
  • Сообщений: 47
  • Последний визит: 2 сентября 2025 в 18:12

Подошёл этот код:

$path_to_file = "uploads/loaded-3.csv"; $file_contents = file_get_contents($path_to_file); $file_contents = str_replace("Российский рубль","RUB",$file_contents); file_put_contents('uploads/decode-3.csv',$file_contents);
Редактировалось: 1 раз (Последний: 20 января 2025 в 23:05)
Андрей Живов
Андрей Живов
  • Сообщений: 16
  • Последний визит: 14 февраля 2025 в 23:39

Угу. Сначала понаставим @, чтобы скрыть все ошибки, а потом будем голову ломать, почему ничего не работает и ошибок не показывает.


А вообще, это делается в одну строку.

file_put_contents($outfilename, str_replace('Российский рубль', 'RUB', file_get_contents($infilename)));
Редактировалось: 1 раз (Последний: 20 января 2025 в 23:04)
Андрей Живов
Андрей Живов
  • Сообщений: 16
  • Последний визит: 14 февраля 2025 в 23:39

Всё просто — если АПИ что-то не предоставляет, тогда парсинг. (но тут могут возникнуть сложности с защитой от оного)

Иван Терешенко

Да только все парсинги работают недолго т.к. такие ресурсы как Авито, Юла, Озон и.т.д. регулярно меняют условия для него, от чего все кравлеры нужно регулярно допиливать. 

Иван Терешенко
Иван Терешенко
  • Сообщений: 47
  • Последний визит: 2 сентября 2025 в 18:12

Всё просто — если АПИ что-то не предоставляет, тогда парсинг. (но тут могут возникнуть сложности с защитой от оного)

Егор Савельев
Егор Савельев
  • Сообщений: 19
  • Последний визит: 24 февраля 2025 в 14:13

Сталкивался с похожим. виновником оказался — один из интернет-провайдеров хостинг-компании. Причина — маршруты на данный пул адресов не прописаны или каким-то образом изменены и трафик идет через китай.

Они включили на данный VPS второго и все стало нормально.
Сделайте трассировку маршрута в обе стороны. В обратную можно просто до вашего провайдера в спидтесте.

Иван Терешенко
Иван Терешенко
  • Сообщений: 47
  • Последний визит: 2 сентября 2025 в 18:12

Банально может ограничивать WARP

Егор Савельев
Егор Савельев
  • Сообщений: 19
  • Последний визит: 24 февраля 2025 в 14:13

Есть еще instr это однозначно быстрее like


Ну и fulltext индексы конечно, искать с некоторым языком запросов

p.s. если искать в строках базы приходится ограниченное количество слов (т.е. грубо говоря список слов определяется проектом, а не свободным вводом от пользователя) то можно заранее (при добавлении строк) построить свой собственный индекс, размещая факт наличия подстроки в строке boolean полем true/false или создав соответствующие таблицы (если наличие слов сильно разряжено — это эффективнее), где наличие записи — факт наличия слова.

Например у тебя искать нужно три слова: man, woman, child, соответственно создаешь три boolean колонки has_man, has_woman, has_child в той же таблице где анализируемая строка и заполняешь их триггером.

Или если тот же пример но через таблицы, то в искомой таблице у тебя должно быть primary key поле, и ты создаешь на каждое слово по таблице has_man, has_woman, has_child, с единственным полем id, в эти таблицы помещаешь запись с id из искомой таблицы, если в ее строке есть это слово… это так же можно делать триггером.

Андрей Живов
Андрей Живов
  • Сообщений: 16
  • Последний визит: 14 февраля 2025 в 23:39

А в чем проблема?

$sql = 'SELECT *  FROM articles  WHERE name LIKE ?  AND name LIKE ?'; $prep = $dbh->prepare($sql); $ret = $prep->execute(['%' . 'опух' . '%', '%' . 'поч' . '%']);
Редактировалось: 1 раз (Последний: 20 января 2025 в 22:50)
Иван Терешенко
Иван Терешенко
  • Сообщений: 47
  • Последний визит: 2 сентября 2025 в 18:12

Ну, ещё владельцу этого ip можно писать. Особенно если это хостер. Результат для вас не сильно важный вопрос

Андрей Живов
Андрей Живов
  • Сообщений: 16
  • Последний визит: 14 февраля 2025 в 23:39

Выглядит как 272 УК РФ.

Обращаешься в полицию, пишешь заявление — его обязаны будут принять и рассмотреть.

По описанию тут как будто бы есть состав 272, так что должны завести уголовное дело

Егор Савельев
Егор Савельев
  • Сообщений: 19
  • Последний визит: 24 февраля 2025 в 14:13

Абсолютно всё, что торчит в сеть, непрерывно брутфорсится, каждый сервер, каждый маршрутизатор. Если вас ломал не школьник, то IP в логах выведет вас или на публичный анонимный прокси или на ничего не подозревающую жертву ботнета, то есть в никуда.

Владислав Кузнецов
Владислав Кузнецов
  • Сообщений: 16
  • Последний визит: 14 марта 2025 в 17:25

Я понял, что могу опустить только массив JSON, который я извлекал из столбца, вот так.

select * from events where lower("Key1:VaLuE1") member of(lower(meta->"$.tags")); 

Это работает отлично! Спасибо 

Редактировалось: 1 раз (Последний: 20 января 2025 в 11:11)
Андрей Живов
Андрей Живов
  • Сообщений: 16
  • Последний визит: 14 февраля 2025 в 23:39

Вы можете решить проблему поиска без учета регистра в массиве JSON, одновременно гарантируя, что при сравнении строк проверяются точные совпадения (а не частичные совпадения), поэтому вы можете использовать комбинацию JSON_EXTRACT и LOWER. функций

попробуй это

SELECT *  FROM events  WHERE LOWER(JSON_UNQUOTE(JSON_EXTRACT(meta, '$.tags'))) = LOWER('Key1:VaLuE1'); 
Редактировалось: 1 раз (Последний: 20 января 2025 в 11:09)
Алексей Девятов
Алексей Девятов
  • Сообщений: 22
  • Последний визит: 15 февраля 2025 в 01:03

Мы тестировали и запускали даже с миллионным и не только контентом но и трафиком, вспомните тот же Рутвит, который сделан так же на движке ДСТ, причем треть контента это были видео, платформа спокойно держит, все дело в серверах, вот где главный расход и напряг, платить за серваки много выходит

Заявка на услуги DST

Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Адрес

Ижевск, ул. Воткинское шоссе 170 Е.
Региональный оператор Сколково. Технопарк Нобель

8 495 1985800
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон