Роман Беляев
16382 сообщения
#13 лет назад
Оффтопик
Цитата ("MMM_Corp"):
не знаю как они устроены

PHP + Mysql
Цитата ("MMM_Corp"):
защищаться бесполезно

В общем нет у вас ответа, да?
Цитата ("MMM_Corp"):
отсылка куда? напр. админу в прямом эфире?

Например смс админу.
Цитата ("MMM_Corp"):
при прямом доступе логин+пароль нужно указывать обьязательно

А как же тогда быть с гостями? Вот поставил человек софтинку на телефон, а там ему БАЦ! Сразу регистрироваться? Или всех будем под одним логином/паролем гонять? А как же тогда учет устраивать?
Цитата ("MMM_Corp"):
логин/пароль/айпи/мак

Про логин и пароль выше написано. Айпи? С проксями как быть? Мак? Через интернет? Это тот, который даже школьник умеет подменить (это для случая если машины в пределах сегмента)

Цитата ("MMM_Corp"):
почитайте про словари в БД

Не думаю, что мне помогут словари. И типографика и тем более цензура требуют очень непростых алгоритмов.
Николай М.
1895 сообщений
#13 лет назад
Оффтопик
Цитата ("frig"):
В общем нет у вас ответа, да?

ответа никакого нету, не хотите чтобы сграбили - выключите сервер, не сграбят)

Цитата ("frig"):
Например смс админу.

както через пхп отправляете), значит и с БД можно отправить. как? UDF в помощь, можно прикрутить любую функцию если в этом есть необходимость

Цитата ("frig"):
А как же тогда быть с гостями?

нет БД где есть понятие "гость", я таких не знаю, или это не сетевая СУБД, значит в приложение нужно забить такого пользователя, это даже не проблема совершенно, разве пхп както хитро позволяет подключится как гость? нет конечно, здесь также

Цитата ("frig"):
Про логин и пароль выше написано. Айпи? С проксями как быть? Мак? Через интернет? Это тот, который даже школьник умеет подменить (это для случая если машины в пределах сегмента)

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

Цитата ("frig"):
Не думаю, что мне помогут словари. И типографика и тем более цензура требуют очень непростых алгоритмов.

в том же мускуле есть средства для работы с строками, возможно вы никогда не питались просто найти такие средства, взять тот же напр. оператор Replace, его достаточно чтобы заменить в тексте маты, конечно я бы завернул такую вещь как функцию и юзал на здоровье, напр. вот моя функция для транслита строки:
CREATE FUNCTION _fs_transliterate(str TEXT)
RETURNS text CHARSET cp1251
DETERMINISTIC
SQL SECURITY INVOKER
BEGIN DECLARE done INT DEFAULT 0;
DECLARE src VARCHAR(1);
DECLARE dst VARCHAR(2);
DECLARE cur CURSOR FOR SELECT `l_from`
, `l_to`
FROM
fs_translit; /* курсор для выборки из таблицы со схемо транслита */
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
/* открываем курсор */

OPEN cur;

REPEAT
FETCH cur INTO src, dst; /* идем по курсору */
SET str = replace(str, src, dst); /* получаем исходный (русский сивол, строку на которуб он заменяется провизодим замену */
UNTIL done
END REPEAT;

CLOSE cur;

RETURN lower(str);
END


и таблица с транслитом:
CREATE TABLE fs_translit(
l_from VARCHAR(1) NOT NULL,
l_to VARCHAR(2) DEFAULT NULL
)
ENGINE = MYISAM
AVG_ROW_LENGTH = 20
CHARACTER SET utf8
COLLATE utf8_general_ci;


вызов очень простой:
select _fs_transliterate('текст для транслита');

что тут сложного? и все на уровне БД
Роман Беляев
16382 сообщения
#13 лет назад
Оффтопик
Цитата ("MMM_Corp"):
UDF в помощь, можно прикрутить любую функцию если в этом есть необходимость

А brainfuck - полный по тьюрингу.
Цитата ("MMM_Corp"):
разве пхп както хитро позволяет подключится как гость? нет конечно, здесь также

php позволяет вести учет гостей. Не просто неизвестно какой откуда пришедший гость, который отправил запрос, получил ответ и растворился.
Цитата ("MMM_Corp"):
нет нужды, потому что обмануть защиту всеравно можно

Дайте мне свой пароль от учетки. И деньги с кошелька Webmoney переведите. Обмануть защиту то все равно можно, нет ничего абсолютного. Зачем защищаться?
Цитата ("MMM_Corp"):
в том же мускуле есть средства для работы с строками

Мало средств для работы со строками. Нужны регулярки, довольно много.
Это только самые простые примеры, когда ваш подход очень далек от оптимального.

Цитата ("MMM_Corp"):
и все на уровне БД

Вы так говорите как будто это просто цель, по достижению которой наступает нирвана. Что хорошего в размещении всей логики на уровне БД?

И самое важное - потом все это нагромождение надо будет кому-то поддерживать и обслуживать. Код должен быть читабельным и понятным, должны быть возможности для тестирования, некоторые даже зачем-то заморачиваются с ООП, про паттерны какие-то бормочут.

Мало того, что у вашего подхода мало преимуществ - так у него еще очень много недостатков. Прослойка нужна и важна. Реализация ее может быть различной, я не говорю что это должен быть PHP и что в качестве СУБД должен быть мускул, нет. Но без прослойки получится троллейбус из буханки.
Николай М.
1895 сообщений
#13 лет назад
Оффтопик
Цитата ("frig"):
А brainfuck - полный по тьюрингу.

не более чем написание модуля для апачи или пхп если это нужно для проекта, то напишут, с чего вы взяли что это плохо? они с воздуха не берутся, их пишут и подключают, или я опять не прав? здесь точно также)

Цитата ("frig"):
php позволяет вести учет гостей. Не просто неизвестно какой откуда пришедший гость, который отправил запрос, получил ответ и растворился.

вы возможно хороший веб-разработчик, но не понимаете как это работает, как достигается учет? сесией, а что такое сесия? простой идентификатор, который гоняется между пхп и браузером, полностью на него полагатся нельзя просто как на абсолютный идентификатор, здесь нужны дополнительные идентификаторы, юзер-агент, айпи и пр. почитайте про HTTP-протокол, и что он собой представляет, более того в прикладном ПО это совсем не нужно, потому что само состояние вынесено на клиента, а в пхп на сервере. Если вы интерисовались разработкой под ASP.Net, то разработка веб-приложения заключается в тотальном контроле идентификатора сессии

Цитата ("frig"):
Зачем защищаться?

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

Цитата ("frig"):
Что хорошего в размещении всей логики на уровне БД?

штудируйте MVC, как молитву, сделайте большую БД, с которой работает несколько сайтов и программ одновременно, если задаетесь вопрос зачем разделять, если можно в кучу свалить - то мне точно уже нечего сказать, делайте, понимание появится только с опытом. Я не говорю что все нужно засунуть в БД, нет конечно, но где логика бизнес процессов - там нет места логике отображения. Еще раз повторюсь, я не против прослойки, а против неоправданной прослойки.

Просто прийти и сказать "мы все г**, а г*** должно говорить громче" - неправильно, приведите конкретные примеры, внесите конструктив в наш диалог. Истина рождается в спорах, лучше буду дураком в глазах окружающих чем молчуном, который боится спрашивать. Именно общение и обмен опытом способно улучшать человека.

П.С. регулярки кстати есть в мускуле:
более мощние регулярки: они подключаются как UDF, тот самый который brainfuck)
Роман Беляев
16382 сообщения
#13 лет назад
Оффтопик
Цитата ("MMM_Corp"):
сесией, а что такое сесия?

А как реализуется сессия в вашем случае?
Цитата ("MMM_Corp"):
почитайте про HTTP-протокол, и что он собой представляет

Спасибо. Обязательно ознакомлюсь. Не подскажите как найти информацию по теме?
Цитата ("MMM_Corp"):
в приведенных вами доводах нет логики

Почему же? Есть граничное время, за которое возможно сломать ваш пароль. У него есть вполне конкретная стойкость, есть вполне определенное время, за которое его можно сломать. А еще есть социальная инженерия, ректальный криптоанализ и другие занятные штуки, которые делают ваш пароль и ваши деньги уязвимыми. Так же как и ваш дом. Зачем ставить на входе в дом стальную дверь, если все равно могут подойти сзади в подъезде и дать трубой по голове? Мало того, что квартиру все равно попадут, так еще и по голове получите за зря. Правильнее держать дверь открытой - это защитит вас от ударов по голове, так как это, похоже, единственно что нас интересует, раз система все равно уязвима. Логично?
Цитата ("MMM_Corp"):
вы не понимаете сути защити для веба

Я много чего не понимаю, судя по всему. Объясните мне, пожалуйста, что к чему.
Цитата ("MMM_Corp"):
штудируйте MVC

Оба слова мне не знакомы. Может быть вы расскажете мне вкратце что к чему?

Цитата ("MMM_Corp"):
где логика бизнес процессов - там нет места логике отображения

Так как я ничего в этом не понимаю - полагаюсь на ваши ответы. Управление сессиями - логика отображения? Управление учетными записями (восстановление пароля через смс, авторизация) - к чему отнести? К которой из букв? Наверное все это правильнее делать используя СУБД. Ведь для этого они предназначены? СУБД тоже малознакомая аббревиатура - что это?

Цитата ("MMM_Corp"):
делайте, понимание появится только с опытом

Спасибо. Ваше одобрение прямо вдохнуло в меня силы!
Сергей К.
1649 сообщений
#13 лет назад
Ей ребята, это совсем не в том направлении
Может себе отдельно тему создадите? Тут о другом.
Николай М.
1895 сообщений
#13 лет назад
Оффтопик
Цитата ("frig"):
А как реализуется сессия в вашем случае?

в моем это в каком? прикладном программировании? это совсем разные вещи, и идеологии, мне не нужно каждый раз подключатся к БД, и не нужна сессия для определения кто подключился к БД, это другое болото совсем, не понял вопроса

Цитата ("frig"):
Спасибо. Обязательно ознакомлюсь. Не подскажите как найти информацию по теме?

в википедии напр., главное почему все так плохо и зачем нужны сесии:
Цитата:
HTTP — протокол прикладного уровня, аналогичными ему являются FTP и SMTP. Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования

в то времья как аудит и прямое подключение позволяет прямо из БД узнать кто подключился:
SELECT CURRENT_USER();

конечно в случаи с сайтом это невозможно сделать нормально, идеология другая

Цитата ("frig"):
Почему же? Есть граничное время, за которое возможно сломать ваш пароль. У него есть вполне конкретная стойкость, есть вполне определенное время, за которое его можно сломать. А еще есть социальная инженерия, ректальный криптоанализ и другие занятные штуки, которые делают ваш пароль и ваши деньги уязвимыми. Так же как и ваш дом. Зачем ставить на входе в дом стальную дверь, если все равно могут подойти сзади в подъезде и дать трубой по голове? Мало того, что квартиру все равно попадут, так еще и по голове получите за зря. Правильнее держать дверь открытой - это защитит вас от ударов по голове, так как это, похоже, единственно что нас интересует, раз система все равно уязвима. Логично?

нет разницы в данном случаи где ломать БД или сайт, но уверен что БД-авторизация делалась не дураками, напр. в MSSQL авторизоваться можно как с помощью windows-авторизации так и классически: логин+пароль, можно оба, и средств для аудита достаточно

все остальные вопросы - откровенный троллинг, отвечать на подобные не буду
Алексей Статюха
47 сообщений
#13 лет назад
Цитата ("WebDesignStudio"):
Цитата ("Statukha"):
Я бы в запросе умножал цену на курс из таблицы курсов

у меня курсы хранятся в базе но там немного другая логика. Если понадобится, смогу использовать.
Цитата ("Statukha"):
Хотя я считаю что это не аккуратное решение т.к. при изменении соотношений курсов сортировка может оказаться не верной.

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


Если подставляются другие то хорошо, значит я не верно понял.
Я предпочитаю не размазывать возню с данными: подготовка (или получение) данных в одном месте (БД, запрос), вывод в одном месте (клиент, php).

А вообще сколько людей - столько мнений. Вам лучше видны детали того что вы делаете, как, при каких условиях и для чего. Поэтому я написал "мне кажется", а не "вы делаете неверно, надо по-другому". ))
Владимир Ф.
1322 сообщения
#13 лет назад
Оффтопик
Цитата ("MMM_Corp"):
сесией, а что такое сесия? простой идентификатор, который гоняется между пхп и браузером

Гоняется кука, которая идентефицирует сессию. А сессия, хранится на сервере и никуда не гоняется. Способов хранения множество. И работать этот механизм может без кук, например можно передаватьв урле.


Цитата ("MMM_Corp"):
вы возможно хороший веб-разработчик,

А вы возможно хороший десктопный или системный. Но советовать с такой уверенностью для веба Цитата ("MMM_Corp"):
вся бизнес логика должна жить только на стороне БД, больше нигде
... ну я не знаю... давайте уже вебфреймворки на С и венгерскую нотацию, что мелочиться.

Оффтопик
жалко tvv ушел