- install rpdb through pip
- import rpdb; rpdb.set_trace()
- telnet 127.0.0.1 4444
Оба - атака на пользователя, в отличие от SQL Injection (атака на сервер)
- цель - заставить браузер жертв(ы) исполнить код
- эксплуатируется доверие юзера к сайту пример:
- злоумышленник может писать на нашем сайте (ревью к примеру), если input не экранируется, он может внедрить
<script>
- цель - заставить браузер жертвы исполнить запрос
- эксплуатируется доверия нашего сайта к браузеру юзера пример:
- злоумышленник не может изменять наш сайт: злоумышленник создает фишинговую страницу с
<img src="oursite/transfer_money">
, при попытке закрузить img выполнится GET request, если жертва авторизирована на нашем сайте с помощью cookie - они передадутся с запросом. Решение - токен, сгенерированный нашим сайтом, который юзер должен "вручную" вставлять в каждый request - злоумышленник может изменять наш сайт: злоумышленник использует XSS уязвимость для совершения CSRF
Денормализация - обратное действие, выполняется для повышения производительности (например, кеширование цена_заказа*количество_заказов
, так мы нарушаем 4 форму)
Нормальные формы бд - рекомендации при проектировании бд. Цель - устранение избыточности. В общем, что бы привести бд в нормальную форму ее следует декомпозировать (разбить на несколько)
-
Атомарность. 1 ячейка не должна содержать несколько значений сведений о рельном мире.
-
(касается только составных ключей) Атрибут не может зависеть от части составного ключа, только от целого. Таблица
ПОСТАВКИ ([N_ПОСТАВЩИКА, ТОВАР], ЦЕНА)
, гдеЦЕНА -> (зависит только от) ТОВАР
, должна быть разбита на 2 таблицыПОСТАВКИ ([N_ПОСТАВЩИКА], ТОВАР)
ЦЕНА_ТОВАРА ([ТОВАР], ЦЕНА)
-
Атрибуты зависят только от ключей, без посредников в виде других атрибутов. Нормальная форма Бойса-Кодда - то же самое что и 3 форма, но рекомендация касается не только атрибутов, но и других ключей. Таблица
ХРАНЕНИЕ ([ФИРМА], СКЛАД, ОБЪЕМ)
, гдеСКЛАД -> ФИРМА
,ОБЪЕМ -> СКЛАД
, должна быть разбита наХРАНЕНИЕ ([ФИРМА], СКЛАД)
ОБЪЕМ_СКЛАДА ([СКЛАД], ОБЪЕМ)
-
Атрибуты независимы и не повторяются
5 и 6. Все возможные декомпозиции проведены, а дальнейшие приведут к потере данных
Обозначения - НАЗВАНИЕ_ТАБЛИЦЫ ([СТОЛБЕЦ_СОСТАВНОГО_КЛЮЧА1, СТОЛБЕЦ_СОСТАВНОГО_КЛЮЧА2], НЕКЛЮЧЕВОЙ_СТОЛБЕЦ)
, ->
- зависит от
CAP theorem
Consistency && availability -- sqlite, only one node Consistency && partition tolerance -- I will by disabled until all my nodes syncronize Availibility && partition tolerance -- diff nodes - diff answers