Зберігання HTML у кодовій бібліотеці бази даних

Я створюю CMS з codeigniter і повинен зберігати якийсь текст, загорнутий у html. Після цього я отримаю дані з бази даних та повторюю їх на своїй сторінці. Який найкращий спосіб зробити це - це свідомість безпеки?

Приклад даних:

A fresh approach

Whether you have queries regarding your

cgoto page
2

2 Відповіді

Apply a XSS filter before saving (better, because you'll save once and echo several times) or on output and assign the content to a variable passed to the view. You may use $this->security->xss_clean($data_retrieved).

3
додано

Sanitization is always necessary.

I'm a particular fan of using white lists for HTML tags so you analyze the data you're about to store and simply wipe out the HTML tags that are not in that white list. This way, if you desire, you can prevent users from inserting certain tags like <script> or with unpredictable or obscure behavior.

Припустимо, що один із ваших користувачів CMS використовує дуже німий пароль і хтось   інший отримує доступ до програми. Фільтрування HTML-вмісту буде   запобігти самозванцю вставляти зловмисний хрестовий домен JavaScript   збирати події клавіатури (що може виявити можливі паролі в   форм входу) та ін.

Також завжди добре перевірити HTML, який ви збираєтеся зберігати, оскільки будь-який невірний HTML призведе до шкоди розмітки вашого веб-сайту та навіть порушенням рендеринга в деяких браузерах.

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

1
додано
Фільтр до і після підходу все ще є найбільш безпечним, він просто повинен знайти баланс виконання, який відповідає його потребам:] я не говорив про прямих зловмисниках баз даних , мав на увазі невідповідності бази даних, викликані будь-яким пряме маніпулювання базою даних (у тому числі сумасшедшие DBA, які працюють без розуму, сценарії обслуговування, так це буває lol).
додано Автор marcio, джерело
Правда Але якщо зловмисник вже має прямий доступ до бази даних, фільтрація вмісту на виході буде найменшою проблемою для вирішення ...;) Я зазвичай застосовую фільтр htmlentities на виході (таким чином я можу виключати сирі HTML-дані за певних умов, оскільки він повинен в цьому випадку) і фільтр xss перед збереженням у базі даних (найкращий підхід до продуктивності, замість того, щоб фільтрувати ті ж дані знову і знову кожний запит).
додано Автор Rodrigo Ferreira, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php

IT KPI - Databases
IT KPI - Databases
162 учасників