<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Bogdan</title><generator>teletype.in</generator><description><![CDATA[В первую очередь программист.]]></description><image><url>https://teletype.in/files/70/82/7082a0f6-375f-442b-b435-b9b51fd884f0.jpeg</url><title>Bogdan</title><link>https://teletype.in/@kleindberg</link></image><link>https://teletype.in/@kleindberg?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/kleindberg?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/kleindberg?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Tue, 28 Apr 2026 09:23:10 GMT</pubDate><lastBuildDate>Tue, 28 Apr 2026 09:23:10 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@kleindberg/laravel-11</guid><link>https://teletype.in/@kleindberg/laravel-11?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><comments>https://teletype.in/@kleindberg/laravel-11?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg#comments</comments><dc:creator>kleindberg</dc:creator><title>Создание проекта на Laravel 11</title><pubDate>Mon, 20 Feb 2023 13:30:03 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/39/bd/39bd55e5-9543-4c84-b7d4-ea81d2196624.png"></media:content><category>Разработка</category><description><![CDATA[<img src="https://img2.teletype.in/files/9e/f5/9ef5cb1c-1c32-4023-9cfc-9121e9e1fce2.png"></img>Далее проверяем, чтобы в PATH были указаны пути к PHP, Composer и NodeJS. Если следовать указаниям установщиков, то это всё сделается автоматически. Возможно, понадобится перезагрузка компьютера.]]></description><content:encoded><![CDATA[
  <h3 id="DQDD">Краткая инструкция, как создать новый пустой проект на Laravel 11 под Windows.</h3>
  <h3 id="kpNC"></h3>
  <h3 id="zePx">Шаг 1. Настройка ПО:</h3>
  <ol id="tryP">
    <li id="r3d3">Установить и настроить сервер <a href="https://biblprog.org.ua/ua/open_server/" target="_blank">OSPanel</a> или <a href="https://laragon.org/" target="_blank">Laragon</a> (рекомендую).</li>
    <li id="1svq">Установить <a href="https://getcomposer.org/download/" target="_blank">Composer</a> указав путь к PHP (есть в папке с сервером).</li>
    <li id="XypG">Установить <a href="https://nodejs.org/en/download/current/" target="_blank">NodeJS</a>.</li>
    <li id="KZR7">Установить улучшенный терминал <a href="https://learn.microsoft.com/ru-ru/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.3#msi" target="_blank">PowerShell 7</a>.</li>
    <li id="gWYI">Установить IDE для разработки - <a href="https://www.jetbrains.com/ru-ru/phpstorm/download/" target="_blank">PHPStorm</a> (рекомендую) или <a href="https://code.visualstudio.com/" target="_blank">VS Code</a>.</li>
  </ol>
  <blockquote id="ReKs">Далее проверяем, чтобы в PATH были указаны пути к PHP, Composer и NodeJS. Если следовать указаниям установщиков, то это всё сделается автоматически. Возможно, понадобится перезагрузка компьютера.</blockquote>
  <figure id="yDFT" class="m_original">
    <img src="https://img2.teletype.in/files/9e/f5/9ef5cb1c-1c32-4023-9cfc-9121e9e1fce2.png" width="1115" />
    <figcaption>Чтобы убедиться, что всё сделали правильно вводим в Терминале команды php -v, node -v и composer -v.</figcaption>
  </figure>
  <p id="TNz7"></p>
  <h3 id="9zki">Шаг 2. Создание нового проекта</h3>
  <p id="HUZf">Имея установленный Composer выполняем в Терминале следующую команду:</p>
  <pre id="xo2q" data-lang="shell">composer create-project laravel/laravel mysite.com
cd mysite.com</pre>
  <p id="SiUt">Добавляем возможность регистрации и авторизации на основе <strong>Bootstrap 5</strong>:</p>
  <pre id="4fc3" data-lang="shell">composer require laravel/ui --dev
php artisan ui bootstrap --auth</pre>
  <p id="dUpq">Выполняем установку необходимых плагинов:</p>
  <pre id="2h0w" data-lang="shell">npm install
npm run dev</pre>
  <p id="Pu1v">Заполняем свои данные для подключения к БД в фале <strong>.env</strong></p>
  <pre id="5xQC" data-lang="shell">DB_CONNECTION=mysql
DB_HOST=kghost.mysql.tools
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=my_admin
DB_PASSWORD=sUper&amp;PassWord</pre>
  <p id="ub97">...и запускаем миграции:</p>
  <pre id="bntS" data-lang="shell">php artisan migrate</pre>
  <p id="EXm2">Готово, теперь открываем папку mysite.com в IDE и начинаем редактирование кода.</p>
  <p id="e1UI"></p>
  <h3 id="SxI5">Шаг 3. Исправление ошибок</h3>
  <p id="1Ufy">На некоторых хостингах может возникнуть вот такая ошибка во время работы с базой данных:</p>
  <blockquote id="t0pA">Ошибка SQLSTATE[42000]: Syntax error or access violation: 1231 Variable &#x27;sql_mode&#x27; can&#x27;t be set to the value of &#x27;NO_AUTO_CREATE_USER&#x27;...</blockquote>
  <p id="X6KH">Нужно в файл <strong>config/database.php</strong> добавить &#x27;modes&#x27;:</p>
  <pre id="4MRn" data-lang="php">&#x27;mysql&#x27; =&gt; [
            &#x27;driver&#x27; =&gt; &#x27;mysql&#x27;,
            &#x27;url&#x27; =&gt; env(&#x27;DATABASE_URL&#x27;),
            &#x27;host&#x27; =&gt; env(&#x27;DB_HOST&#x27;, &#x27;127.0.0.1&#x27;),
            &#x27;port&#x27; =&gt; env(&#x27;DB_PORT&#x27;, &#x27;3306&#x27;),
            &#x27;database&#x27; =&gt; env(&#x27;DB_DATABASE&#x27;, &#x27;forge&#x27;),
            &#x27;username&#x27; =&gt; env(&#x27;DB_USERNAME&#x27;, &#x27;forge&#x27;),
            &#x27;password&#x27; =&gt; env(&#x27;DB_PASSWORD&#x27;, &#x27;&#x27;),
            &#x27;unix_socket&#x27; =&gt; env(&#x27;DB_SOCKET&#x27;, &#x27;&#x27;),
            &#x27;charset&#x27; =&gt; &#x27;utf8mb4&#x27;,
            &#x27;collation&#x27; =&gt; &#x27;utf8mb4_unicode_ci&#x27;,
            &#x27;prefix&#x27; =&gt; &#x27;&#x27;,
            &#x27;prefix_indexes&#x27; =&gt; true,
            &#x27;strict&#x27; =&gt; true,
            &#x27;engine&#x27; =&gt; &#x27;InnoDb&#x27;,
            &#x27;modes&#x27;  =&gt; [
                &#x27;ONLY_FULL_GROUP_BY&#x27;,
                &#x27;STRICT_TRANS_TABLES&#x27;,
                &#x27;NO_ZERO_IN_DATE&#x27;,
                &#x27;NO_ZERO_DATE&#x27;,
                &#x27;ERROR_FOR_DIVISION_BY_ZERO&#x27;,
                &#x27;NO_ENGINE_SUBSTITUTION&#x27;,
            ],
            &#x27;options&#x27; =&gt; extension_loaded(&#x27;pdo_mysql&#x27;) ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA =&gt; env(&#x27;MYSQL_ATTR_SSL_CA&#x27;),
            ]) : [],
        ],</pre>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="e01P">Обязательно укажите <code>&#x27;engine&#x27; =&gt; &#x27;InnoDb&#x27;,</code> чтобы в будущем не возникало ошибок (по умолчанию, эта опция не указана).</p>
  </section>
  <p id="ZaP7">Далее может возникнуть ошибка</p>
  <blockquote id="YPGO">SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes...</blockquote>
  <p id="ww0R">Для этого в файл <strong>app/Providers/AppServiceProvider.php</strong> добавляем код:</p>
  <pre id="vwmK" data-lang="php">use Illuminate\Support\Facades\Schema;

public function boot(): void {
    Schema::defaultStringLength(191);
}</pre>
  <p id="Y4gc">Готово!</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kleindberg/protect-wordpress-with-cloudflare</guid><link>https://teletype.in/@kleindberg/protect-wordpress-with-cloudflare?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><comments>https://teletype.in/@kleindberg/protect-wordpress-with-cloudflare?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg#comments</comments><dc:creator>kleindberg</dc:creator><title>Как защитить WordPress с помощью CloudFlare?</title><pubDate>Mon, 07 Mar 2022 19:40:21 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/a7/ec/a7ec287a-c134-401f-8da4-5b04d4793ab2.png"></media:content><category>Разработка</category><description><![CDATA[<img src="https://img3.teletype.in/files/60/e2/60e24382-ef1e-4c04-8528-1ea7207329f8.jpeg"></img>Несколько полезных правил для файервола которые помогут отбить атаку ботов и спамеров на ваш сайт под управлением WordPress.]]></description><content:encoded><![CDATA[
  <p id="zPsN" data-align="center">Несколько полезных правил для файервола которые помогут отбить атаку ботов и спамеров на ваш сайт под управлением WordPress.</p>
  <figure id="ILBh" class="m_original">
    <img src="https://img3.teletype.in/files/60/e2/60e24382-ef1e-4c04-8528-1ea7207329f8.jpeg" width="3840" />
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="UGSP">Содержание:</p>
    <nav>
      <ul>
        <li class="m_level_1"><a href="#pXin">1. Уменьшаем количество спама в комметариях</a></li>
        <li class="m_level_1"><a href="#Ibnd">2. Запрещаем прямой доступ к плагинам</a></li>
        <li class="m_level_1"><a href="#tiHK">3. Блокируем доступ к форме авторизации</a></li>
        <li class="m_level_1"><a href="#OXso">4. Блокируем доступ к xmlrpc.php</a></li>
        <li class="m_level_1"><a href="#7rnM">5. Блокируем доступ к админпанели wp-admin</a></li>
        <li class="m_level_1"><a href="#jjLb">Решения в виде плагинов</a></li>
      </ul>
    </nav>
  </section>
  <p id="817n">Для активации этих правил ваш сайт должен быть подключён к CloudFlare. Заходим в меню <strong>Firewall -&gt; Firewall Rules</strong> и создаём следующие записи (в бесплатном тарифе нам доступны только 5 правил).</p>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="NP6g"><strong>Важно:</strong> site.com в примерах заменяем на ваш домен.</p>
  </section>
  <hr />
  <h3 id="pXin">1. Уменьшаем количество спама в комметариях</h3>
  <p id="BgQ6">Лучшим решением будет активация плагина Akismet Anti-Spam, но помимо него мы можем запретить POST запросы к файлу wp-comments-post.php за пределами нашего сайта. Для этого создаём следующее правило:</p>
  <figure id="lKJq" class="m_retina">
    <img src="https://img4.teletype.in/files/f2/63/f26347a1-ef8e-4392-825a-b32190e0d214.png" width="1054" />
    <figcaption>Блокируем доступ к файлу wp-comments-post.php.</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Pt5z">(http.request.uri.path eq &quot;/wp-comments-post.php&quot; and http.request.method eq &quot;POST&quot; and not http.referer contains &quot;site.com&quot;)</p>
  </section>
  <h3 id="Ibnd">2. Запрещаем прямой доступ к плагинам</h3>
  <p id="EzAe">Большинство взломов происходит из-за наличия уязвимостей в популярных плагинах, которые позволяют хакерам находить лазейки и получать доступ к вашему сайту (загружать и изменять файлы, удалённо запускать скрипты). </p>
  <p id="LCY2">Данный способ поможет защититься даже если в плагине присутствует вирус, который активируется извне. Создаём следующее правило:</p>
  <figure id="Gtle" class="m_retina">
    <img src="https://img2.teletype.in/files/10/ef/10ef477a-8dfd-4aa9-928b-fd4690d2ef2c.png" width="1052" />
    <figcaption>Блокируем доступ к плагинам в папке wp-content.</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="CZhz">(http.request.uri.path contains &quot;/wp-content/plugins/&quot; and not http.referer contains &quot;yoursite.com&quot; and not cf.client.bot)</p>
  </section>
  <hr />
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="xKDG">Правила описанные ниже будут блокировать всех подряд, поэтому их нужно использовать только с предварительно настроеным белым списком IP адресов.</p>
  </section>
  <p id="LFy9">Чтобы добавить свой IP в список разрешенных зайдите в меню <strong>Firewall -&gt; Tools</strong> и создайте такую запись:</p>
  <figure id="Rjnk" class="m_column">
    <img src="https://img1.teletype.in/files/8b/af/8baff13c-947f-4483-a75a-c989d4e3cccb.png" width="2092" />
    <figcaption>Добавление IP адреса в белый список</figcaption>
  </figure>
  <p id="dQBU">Вы также можете указать несколько IP адресов (например, интернет в офисе, мобильный, домашний), диапазон или целую страну, но в таком случае доступ будут иметь большее число людей.</p>
  <p id="wzLV">После создания белого списка мы можем настроить следующие правила не потеряв при этом доступ к сайту.</p>
  <hr />
  <h3 id="tiHK">3. Блокируем доступ к форме авторизации</h3>
  <p id="j4Qk">В логах сервера можно увидеть, сколько разных IP пытались получить доступ к файлу <strong>wp-login.php</strong>. Это может быть и перебор паролей (брутфорс) и просто чей-то интерес, убедиться, что сайт создан на WordPress.</p>
  <p id="yoCb">Существует плагин, который позволяет скрыть файл wp-login.php и ссылку вида site.com/admin заменив её на другую. Если вы не хотите его использовать, то можно защитить админку создав следующее правило:</p>
  <figure id="FDYh" class="m_retina">
    <img src="https://img1.teletype.in/files/88/34/8834f942-c07b-4b62-b817-ac21ee6420f8.png" width="1047" />
    <figcaption>Блокируем запросы к wp-login.php.</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="CSxq">(http.request.uri.path contains &quot;/wp-login.php&quot;)</p>
  </section>
  <h3 id="OXso">4. Блокируем доступ к xmlrpc.php</h3>
  <p id="9YIT">Для блокировки доступа к файлу <strong>xmlrpc.php</strong> (отвечает за добавление записей с телефона или через систему мультисайтов) также существуют плагины. Но, мы можем обойтись следующим правилом:</p>
  <figure id="Vofu" class="m_retina">
    <img src="https://img3.teletype.in/files/2c/cf/2ccfe657-df22-4b2e-bc40-df6d20e6cd4a.png" width="1050" />
    <figcaption>Блокируем запросы к xmlrpc.php.</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Cbz8">(http.request.uri.path contains &quot;/xmlrpc.php&quot;)</p>
  </section>
  <p id="3Tm6">Оба правила можно активировать и на стороне сервера. Например, хостинг <a href="https://www.ukraine.com.ua/?page=131227" target="_blank">Ukraine.com.ua</a> предоставляет такую возможность в меню Защита от ботов:</p>
  <figure id="JNfL" class="m_column">
    <img src="https://img4.teletype.in/files/b8/2b/b82b75a8-11b2-4462-8aeb-330533a35733.png" width="1648" />
    <figcaption>Защита от ботов на хостинге.</figcaption>
  </figure>
  <h3 id="7rnM">5. Блокируем доступ к админпанели wp-admin</h3>
  <p id="NAjg">Мы не можем полностью запретить доступ к папке <code>/wp-admin</code> потому, что CMS использует такие адреса как <code>/wp-admin/admin-ajax.php</code> или <code>/wp-admin/theme-editor.php</code>. Поэтому здесь правило будет сложнее:</p>
  <figure id="AJmS" class="m_retina">
    <img src="https://img4.teletype.in/files/ff/7f/ff7f28fa-edac-4d5a-883c-4ce62424ab34.png" width="1050" />
    <figcaption>Блокируем доступ к wp-admin.</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="b3Oe">(http.request.uri.path contains &quot;/wp-admin/&quot; and not http.request.uri.path contains &quot;/wp-admin/admin-ajax.php&quot; and not http.request.uri.path contains &quot;/wp-admin/theme-editor.php&quot;)</p>
  </section>
  <hr />
  <h3 id="jjLb">Решения в виде плагинов</h3>
  <p id="uSfF">Не лишним будет и защита на самом сервере. Для этого лучше всего использовать проверенные плагины, о которых уже упоминалось в статье:</p>
  <ol id="WQpI">
    <li id="FRwx"><strong><a href="https://prowebber.ru/wordpress-cat/wp-modules/22675-wordfence-security-premium-totalnaya-zaschita-dlya-wordpress.html" target="_blank">Wordfence Security Premium</a></strong> - плагин для полной защиты сайта. Помимо возможности отбивать подозрительные запросы к сайту плагин может сканировать сайт на наличие вирусов (изменённых файлов, тем и плагинов).</li>
    <li id="Vn13"><strong><a href="https://uk.wordpress.org/plugins/akismet/" target="_blank">Akismet Spam Protection</a></strong> - плагин для фильтрафии спама в комментариях. Автоматически удаляет подозрительные плагины, проверяет рейтинг пользователей.</li>
    <li id="Zdy5"><a href="https://clearfy.pro/" target="_blank"><strong>Clearfy</strong></a> - плагин всё в одном для оптимизации и защиты сайта. Очень много настроек, половина из которых может не пригодиться, если вы используете WP-Rocket или Autoptimize. Из уникальных функций - возможность изменить адрес панели управления и всех системных папок (например, вместо wp-content сделать uploads тем самым запутав хакеров).</li>
  </ol>
  <figure id="s9sj" class="m_column">
    <iframe src="https://www.youtube.com/embed/cDy8Fohp1IQ?autoplay=0&loop=0&mute=0"></iframe>
    <figcaption>Сравнение бесплатного Clearfy и платного Clearfy Pro от разных разработчиков</figcaption>
  </figure>
  <p id="X0kC">Если у вас есть свои варианты защиты сайта WordPress - пишите о них в комментариях.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kleindberg/no-russia</guid><link>https://teletype.in/@kleindberg/no-russia?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><comments>https://teletype.in/@kleindberg/no-russia?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg#comments</comments><dc:creator>kleindberg</dc:creator><title>Как защитить сайт от нежелательного трафика?</title><pubDate>Mon, 07 Mar 2022 18:13:17 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/ae/49/ae4928be-b92b-4749-ba0d-68697908a16e.png"></media:content><category>Разработка</category><description><![CDATA[<img src="https://img1.teletype.in/files/4a/a1/4aa1312c-44fa-4967-9c6a-b7b82db93dd3.jpeg"></img>Подробная инструкция о том, как ограничить доступ к сайту пользователям из России, Беларуси и других стран.]]></description><content:encoded><![CDATA[
  <p id="QtP6" data-align="center">Подробная инструкция о том, <strong>как ограничить доступ к сайту пользователям из России, Беларуси</strong> и других стран.</p>
  <figure id="iD8N" class="m_original">
    <img src="https://img1.teletype.in/files/4a/a1/4aa1312c-44fa-4967-9c6a-b7b82db93dd3.jpeg" width="3840" />
  </figure>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="u48A">Содержание</p>
    <nav>
      <ul>
        <li class="m_level_1"><a href="#mEaT">Что такое CloudFlare и зачем он нужен?</a></li>
        <li class="m_level_1"><a href="#tY26">Как защитить сайт с помощью CloudFlare?</a></li>
      </ul>
    </nav>
  </section>
  <p id="nr4r">В связи с последними событиями в мире, большинство веб-разработчиков интересуются, как ограничить опасный трафик с нежелательных стран. Начнём с элементарного.</p>
  <hr />
  <h2 id="mEaT">Что такое CloudFlare и зачем он нужен?</h2>
  <p id="dCFy">Раньше я считал, что если мой сайт ориентирован на одну страну (например, местный интернет-магазин), то мне не нужны всякие CDN сервисы для ускорения. Размещаешь сайт в своей стране и всё быстро летает. Но, не следует забывать, что...</p>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="ZaYS"><strong>CloudFlare - </strong>это не только бесплатный CDN, а и мощное средство для защиты сайта от нежелательного трафика и DDoS аттак.</p>
  </section>
  <p id="jXxl">Помимо ускорения, сервис CloudFlare бесплатно предоставляет:</p>
  <ol id="e2f9">
    <li id="vokI"><strong>E-mail роутинг.</strong> Вы можете создавать любые почтовые адреса на своём домене (даже отлавливать письма на несуществующие ящики) и пересылать их на привычные вам Gmail или другие email.</li>
    <li id="uuue"><strong>SSL сертификат.</strong> Вы можете настроить безопасное HTTPS соединение со своим сайтом получив бесплатный сертификат на 15 лет который признают все браузеры.</li>
    <li id="ksdw"><strong>Ускорение и оптимизации.</strong> Помимо обычного CDN вы можете настроить оптимизацию картинок на лету, конвертацию в формат WebP, выполнять минификацию кода, подключить современные протоколы для более быстрой загрузки сайта, и конечно же настроить кэширование.</li>
    <li id="cv6F"><strong>Защита. </strong>С помощью CloudFlare можно собирать подробную статистику посещений и фильтровать трафик, защитить админ-панель или корзину от взлома, отбить DDoS аттаки, фильтровать ботов и даже настроить доступ к внутренней инфраструктуре без использования VPN.</li>
    <li id="nfiZ">Приложения, правила и прочие оптимизации на стороне. Вы можете настраивать редиректы в зависимости от события, запускать различные скрипты и даже добавлять на сайт приложения по типу поиска или чатов.</li>
  </ol>
  <p id="ltDq">Помимо всего CloudFlare является регистратором доменов по себестоимости. К примеру, вы можете купить домен com за 8 долларов - такой цены вы нигде не найдёте. А также настроить стриминг, обрабатывать изображения, использовать их средства защиты.</p>
  <p id="qGfr">Собственно, из всего выше перечисленного, нас, в первую очередь, интересует защита сайта.</p>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="HvMe">CloudFlare можно использовать на любых сайтах и приложениях не зависимо от системы управления сайтом или хостинга.</p>
  </section>
  <p id="rge9">Чтобы продолжить действовать по инструкции, ваш сайт должен использовать NS сервера от CloudFlare. О том, <a href="https://eternalhost.net/base/web-hosting/chto-takoe-cloudflare" target="_blank">как подключить CloudFlare</a> написано много статей и видео, поэтому этот вопрос я опущу.</p>
  <figure id="rZwC" class="m_column">
    <iframe src="https://www.youtube.com/embed/Q7RPeZdCeBo?autoplay=0&loop=0&mute=0"></iframe>
    <figcaption>Как подключить сайт к CloudFlare</figcaption>
  </figure>
  <hr />
  <h2 id="tY26">Как защитить сайт с помощью CloudFlare?</h2>
  <p id="6hva">Чтобы настроить <strong>фильтрацию трафика по странам</strong>, нужно:</p>
  <ol id="02VY">
    <li id="Fy1g">Зайти в меню Firewall -&gt; Firewall Rules и нажать кнопку <strong>Create a Firewall rule</strong>.</li>
  </ol>
  <figure id="mqMn" class="m_column">
    <img src="https://awesomescreenshot.s3.amazonaws.com/image/973936/23613575-bb2cc5b360d6e6e80b1726d71a1dcc21.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJSCJQ2NM3XLFPVKA%2F20220307%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220307T175448Z&X-Amz-Expires=28800&X-Amz-SignedHeaders=host&X-Amz-Signature=3547973230385ccf0d854f6a3fbfe902dcd8c24144d41ffde517266ba13029ba" width="2238" />
    <figcaption>Создаём новое правило для блокировки трафика.</figcaption>
  </figure>
  <ol id="MvF9">
    <li id="zn60">Создайте новое правило. Укажите название (можно на русском), условие (Country is in Russian Federation, Belarus) и действие (Block) и нажмите кнопку <strong>Deploy</strong>.</li>
  </ol>
  <figure id="alTL" class="m_column">
    <img src="https://awesomescreenshot.s3.amazonaws.com/image/973936/23613810-153fa977ab9190d56e72b12fa69c2f07.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJSCJQ2NM3XLFPVKA%2F20220307%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220307T175830Z&X-Amz-Expires=28800&X-Amz-SignedHeaders=host&X-Amz-Signature=5f0409ca3d3e82882f65a1163a99b7b9201e9385514e744356c4093ec681e85f" width="2238" />
    <figcaption>Блокируем доступ к сайту для жителей Российской Федерации и Беларуси.</figcaption>
  </figure>
  <p id="cXoh">Как вы уже догадались, с помощью правил для файервола мы можем не только блокировать страны, а фильтровать по файлам куки, IP адресам, типам устройств, URL адресам, ботам и так далее.</p>
  <figure id="BxD4" class="m_column">
    <img src="https://img3.teletype.in/files/62/84/6284b089-fb52-4f58-ae91-0491da17f77e.png" width="2090" />
    <figcaption>Вот такое сообщение увидит пользователь из заблокированной страны</figcaption>
  </figure>
  <p id="6lsm">Если на ваш сайт идут атаки с какой-то определённой страны, то данное решение поможет снизить нагрузку на хостинг и ограничить доступ к вашему сайту. Дополнительно можно включить режим DDos, когда атака идёт с разных IP.</p>
  <p id="Sxsj">Единственный минус, что такое решение может ограничить доступ поисковым ботам по типу Яндекса и вам начнут приходить письма, что ваш сайт недоступен. Мы когда-то ограничили доступ жителям США и чуть не выпали из Google.</p>
  <p id="mE5v">Кстати, у меня есть статья о том, <a href="https://teletype.in/@kleindberg/protect-wordpress-with-cloudflare" target="_blank">как защитить сайт на WordPress с помощью правил CloudFlare</a>. Если разобраться, то эти правила можно применять к любым CMS и приложениям просто заменив URL.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kleindberg/church-with-blackjack</guid><link>https://teletype.in/@kleindberg/church-with-blackjack?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><comments>https://teletype.in/@kleindberg/church-with-blackjack?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg#comments</comments><dc:creator>kleindberg</dc:creator><title>В чужой монастырь со своим уставом</title><pubDate>Mon, 07 Dec 2020 10:22:14 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/45/59/4559e3e6-d50f-4506-be2f-8e78143202ae.png"></media:content><category>Мысли</category><description><![CDATA[<img src="https://bogdans.org/wp-content/uploads/2020/02/barsik.jpg"></img>Этим постом, я начинаю свой микроблог. Краткие заметки я пишу еще со студенческих времен, но не всегда получалось их публиковать.]]></description><content:encoded><![CDATA[
  <p>Этим постом, я начинаю свой микроблог. Краткие заметки я пишу еще со студенческих времен, но не всегда получалось их публиковать.</p>
  <figure class="m_column">
    <img src="https://bogdans.org/wp-content/uploads/2020/02/barsik.jpg" width="790" />
  </figure>
  <h3>БАРСИК И ЕГО КОМПАНИЯ</h3>
  <p>Казалось бы, взрослый человек со сформировавшимися ценностями менее склонен к влиянию окружающих. В отличии от пубертатных школьников, он не ищет себе лидера для подражания. Но, на практике выходит всё иначе.</p>
  <p>Мой знакомый, будучи по натуре омега-самцом, связался с “плохой компанией” альфачей. Считая их успешными, он начал подражать им, следовать их тупым советам. Вот только вышла одна неурядица. Альфа-самцы эти ничего из себя не представляют – они, как и их новый поклонник, работают в одном подвале и даже больше – все получают минималку.</p>
  <p>Здесь вспоминается случай, когда какой-то теоретик-идеолист именуемый в народе бизнес-коучем пытается учить жизни матёрого предпринимателя, который на своей шкуре прошел все семь кругов ада.</p>
  <p>Никогда никого не слушайте, ибо любое индивидуальное решение, которые примите <strong>вы</strong> будет правильным.</p>
  <figure class="m_retina">
    <img src="https://bogdans.org/wp-content/uploads/2020/02/scar-the-lion-king-2019-scaled.jpg" width="1280" />
  </figure>
  <h3>КРУГОМ ОДНИ ИДИОТЫ</h3>
  <p>Взвешиваю печенье в Сильпо. В этот супермаркет я хожу уже несколько лет и за это время там ничего не поменялось, кроме работников. Поэтому, взвешивать товары я умею лучше всех.</p>
  <p>В отличие от обычных юзеров, я не ищу товар в списке из миллиона позиций, а просто вбиваю в поисковую строку его ключевое слово. Например, для товара с названием “Пряник “Деліція” Ворзельский с декором” ключевое слово будет “Ворзельский”, потому что пряников, как и товаров от ТМ Делиция бывает много видов. Мыслить ключевыми словами меня научила моя профессия.</p>
  <p>А теперь представьте картину. Я, программист, взвешиваю свои пряники. Ко мне подошла какая-то новая работница, выхватила у меня из рук товар и начала учить, как правильно его взвешивать. С пятой попытки она таки нашла его в списке товаров и таки взвесила.</p>
  <p>У меня в тот день не было настроения скандалить, поэтому я просто молча посмотрел на её неудачные попытки и забрал своё печенье. Бесят такие люди, которые готовы проконсультировать по любому вопросу, абы всунуть своё рыло хоть куда-то.</p>
  <figure class="m_original">
    <img src="https://normpost.ru/uploads/images/00/00/08/2018/03/11/0u45b713f4-475bf6f6-55e538a7.jpg" width="595" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kleindberg/independency</guid><link>https://teletype.in/@kleindberg/independency?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><comments>https://teletype.in/@kleindberg/independency?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg#comments</comments><dc:creator>kleindberg</dc:creator><title>Слишком независимые</title><pubDate>Mon, 07 Dec 2020 10:20:36 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/82/6c/826c2060-b97b-4cc1-9d67-ffdaf8adda53.png"></media:content><category>Мысли</category><description><![CDATA[<img src="https://teletype.in/files/4d/fe/4dfe48b6-36f0-43e7-8ef9-28c0df73bbdc.png"></img>Мои попытки разобраться в современных отношениях привели к интересным умозаключениям.]]></description><content:encoded><![CDATA[
  <p>Мои попытки разобраться в современных отношениях привели к интересным умозаключениям.</p>
  <h5>ПРОБЛЕМА 21 ВЕКА</h5>
  <p>Последнее время все чаще можно заметить одиноких людей, которым «уже давно за 30». Своё одиночество они объясняют по-разному, но если обобщить их ответы получается одно – много работы, нет свободного времени. Но, виновата ли работа?</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/4d/fe/4dfe48b6-36f0-43e7-8ef9-28c0df73bbdc.png" width="960" />
  </figure>
  <p><strong>Много работы</strong></p>
  <p>Современные интеллектуалы действительно работают много, порой даже больше нормированных 8 часов. Не редки случаи, когда он и она получают достаточно много, чтобы обеспечить себя любимого (но, не семью).</p>
  <p>Будучи хорошо обеспеченным, у человека включается гордость. Мне попадались девушки, которые в свои 20 уже имели собственную машину и зарплату в 1000 долларов. Скажите, чем может удивить такую леди среднестатистический холостяк, работающий каким-то консультантом за минималку?</p>
  <p><strong>Образ жизни</strong></p>
  <p>Многих моих знакомых устраивают не регулярные заработки и фривольный образ жизни. Есть деньги – гуляем, нет – сидим дома. У них нет никаких целей, кроме гедонических.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kleindberg/not-flying</guid><link>https://teletype.in/@kleindberg/not-flying?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><comments>https://teletype.in/@kleindberg/not-flying?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg#comments</comments><dc:creator>kleindberg</dc:creator><title>Мысли вслух</title><pubDate>Sat, 28 Nov 2020 08:28:35 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/88/6b/886b9628-bf81-40cc-8b77-7c1473cfed81.png"></media:content><category>Мысли</category><description><![CDATA[<img src="https://teletype.in/files/1d/3d/1d3ddbaf-53f7-453a-b156-ddec83c95809.jpeg"></img>Все чаще стал замечать геодискриминацию в популярных приложениях доставки еды. Хочешь заказать пиццу на дом, а тебе пишет &quot;извините, но мы сюда не летаем&quot;.]]></description><content:encoded><![CDATA[
  <h3>Ущербные</h3>
  <p>Все чаще стал замечать геодискриминацию в популярных приложениях доставки еды. Хочешь заказать пиццу на дом, а тебе пишет &quot;извините, но мы сюда не летаем&quot;.</p>
  <p>И тут возникла мысль: <em>что если посмотреть на ситуацию с обратной стороны? </em>Представить, что службы доставки нужны только для несчастных жителей центра задыхающихся от выхлопных газов и бесконечного потока автомобилей, для офисного планктона сидящего на минималку и зарабатывающего геморрой, сколиоз и прочие нервные расстройства, для маргинальных холостяков, чей ужин состоит из меню ближайшего фастфуда...</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/1d/3d/1d3ddbaf-53f7-453a-b156-ddec83c95809.jpeg" width="832" />
    <figcaption>Типичные клиенты служб доставки еды</figcaption>
  </figure>
  <p>И тут я действительно задумался, <em>кто же более ущербный</em> - житель загородной виллы, который на своём Range Rover везёт себе кусочек пиццы или житель центра, которому пиццу привёз потный курьер на велосипеде?</p>
  <p>В нашем гипертрофированном обществе существует мнение, что жить в центре города - это блажь и удел элиты. Но, почему-то весь западный мир живёт в &quot;одноэтажной Америке&quot; далеко за пределами мегаполисов, а не в многоэтажках с видом на соседний скворечник и задыхающийся город.</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/70/8f/708fbe40-ec3b-4ef4-8172-fd6b459c72fc.png" width="750" />
    <figcaption>Ущербная окраина</figcaption>
  </figure>
  <h3>Спасибо Боже</h3>
  <p>Кто из нас не разочаровывался в людях?</p>
  <p>Влюбился ты в какую-нибудь девушку, души в ней не чаешь, пытаешься ухаживать, а в ответ тишина. Безответные чувства угасают и ты остываешь.</p>
  <p>Потом, через пару лет, случайно встречаешь свой объект пристрастия под дискаунтером и радуешься, что Бог отвёл тебя: худая маргинальная дама с коляской и залётным ребёнком. Возможно, дома её ждёт очередной алкоголик, запивающий свои лучшие годы либо начатая анкета на сайте знакомств. А ты лишь невольно задаёшься вопросом, как мог влюбиться в такое чмо и тихонько злорадствуешь вспоминая Карму. А ведь всё могло бы сложиться иначе и на месте того маргинала мог быть ты...</p>
  <figure class="m_retina">
    <img src="https://teletype.in/files/31/d3/31d32c06-c66e-4bfa-9b8f-a351441eb950.jpeg" width="960" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@kleindberg/selecting-cms</guid><link>https://teletype.in/@kleindberg/selecting-cms?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg</link><comments>https://teletype.in/@kleindberg/selecting-cms?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=kleindberg#comments</comments><dc:creator>kleindberg</dc:creator><title>Как лодку назовёшь?</title><pubDate>Wed, 16 Sep 2020 17:47:08 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/f9/14/f91451e2-80a9-4af9-b0ab-7a4bdf289cd6.jpeg"></media:content><description><![CDATA[<img src="https://teletype.in/files/f9/14/f91451e2-80a9-4af9-b0ab-7a4bdf289cd6.jpeg"></img>От выбора системы управления сайтом (CMS) зависит 90% будущего проекта. Как не допустить фатальной ошибки в самом начале и что будет, если это сделать - читайте в этой статье.]]></description><content:encoded><![CDATA[
  <p>От выбора системы управления сайтом (CMS) зависит 90% будущего проекта. Как не допустить фатальной ошибки в самом начале и что будет, если это сделать - читайте в этой статье.</p>
  <h3>Лучший сайт - это сайт написанный с нуля!</h3>
  <p>Любой программист будет уверять вас, что лучший сайт - это сайт написанный с нуля на каком-нибудь популярном фреймворке (не путать с системой управления сайтом).</p>
  <p>Я имел дело с клиентом, у которого был <strong>интернет-магазин на Laravel</strong>. Ничего не имею против этого замечательного фреймворка, просто скажу, что заказчик несколько лет искал специалиста, который взялся бы за обслуживание сайта. </p>
  <figure class="m_column" data-caption-align="center">
    <img src="https://teletype.in/files/f9/14/f91451e2-80a9-4af9-b0ab-7a4bdf289cd6.jpeg" width="2400" />
    <figcaption>Приблизительно так выглядит обслуживание сайта на Laravel</figcaption>
  </figure>
  <p>Поэтому, если вы не программист и у вас в штате нет желающих каждый день что-то кодить и дебажить - это решение однозначно отпадает.</p>
  <p>При этом, отрицать силу «чистого кода» не стоит. Например, <strong>сайт знакомств</strong> или <strong>доску объявлений</strong> разумнее построить на специализированном скрипте, чем городить это на одной из популярных CMS по типу WordPress.</p>
  <p>Если вам нужна какая-нибудь временная заглушка, лендинг или сайт-визитка, который не будет обновляться, то <strong>чистый HTML</strong> вообще идеальный вариант.</p>
  <figure class="m_column" data-caption-align="center">
    <img src="https://teletype.in/files/79/4d/794d925d-2ca0-4e84-a5ab-09f3208e2239.png" width="3801" />
    <figcaption>Написать подобный сайт можно на чистом HTML и он будет летать!</figcaption>
  </figure>
  <h3>OpenCart - для магазинов, Joomla - для корпоративных сайтов</h3>
  <p>Многие доморощенные специалисты до сих пор твёрдо уверенны, что OpenCart - это единственный движок для написания интернет-магазина. К их счастью, они не знакомы с другими решениями.</p>
  <p><strong><a href="https://site-builders.ru/cms-opencart" target="_blank">OpenCart </a></strong>- это действительно хороший скрипт для онлайн торговли. На нём, к слову, написана половина отечественных интернет-магазинов (другая половина на Bitrix). </p>
  <p>Я видел реальный пример, когда база данных сайта на OpenCart с 1000 товарами весила 6 мегабайт. К сожалению, на этом плюсы данной системы заканчиваются. </p>
  <p>Чтобы изменить что-то в OpenCart нужно лезть в системный код, который после обновления может слететь. Действительно годные решения под OpenCart стоят хороших денег, а бесплатные советы на форумах - не более, чем костыли.</p>
  <figure class="m_column" data-caption-align="center">
    <img src="https://teletype.in/files/23/1c/231c70f8-0a9c-4a84-b431-c48c2752e622.png" width="1350" />
    <figcaption>OpenCart - отличное решение если в штате есть программист и вы готовы каждый раз платить</figcaption>
  </figure>
  <p>В этом плане <strong>Joomla ушла не далеко</strong>: разобраться с адмнинкой без ста грамм вряд ли получится, а установка модулей и тем может не увенчаться успехом из-за разных версий. Спасает наличие готовых сборок, но они не всегда будут соответствовать вашим ожиданиям и требованиям. К тому же, Joomla - ужасно медленная и прожорливая система.</p>
  <figure class="m_column" data-caption-align="center">
    <img src="https://teletype.in/files/25/4a/254ad250-e0e3-4f97-88e0-26012b37ce0a.png" width="700" />
    <figcaption>Панель управления Joomla - миллион вкладок на все случаи жизни</figcaption>
  </figure>
  <p>Относительно других систем по типу PrestaShop, ShopCMS, Drupal, ModX - это экзотика, под которую какие-то энтузиасты пишут решения, но они не всегда работают.</p>
  <h3>WordPress на все случаи жизни?</h3>
  <p>Первая версия WordPress вышла <strong>27 мая 2003 года</strong> и предназначалась исключительно для ведения блогов. С того времени прошло 17 лет и система радикально изменилась.</p>
  <p>На сегодня это <strong>самая популярная CMS</strong> на все случаи жизни - от блога или сайта-визитки до корпоративного сайта, интернет-магазина или целого портала. </p>
  <p>По данным лаборатории W3Techs в марте 2020 на WordPress были <strong>созданы 36% сайтов мира</strong> (доля рынка CMS составляет 63%).</p>
  <figure class="m_column">
    <img src="https://teletype.in/files/5b/18/5b1875bf-0eff-4646-9e73-bb32ad32ad8a.png" width="1426" />
  </figure>
  <p><strong>Успех WordPress</strong> объясняется легко: система полностью бесплатная (open-source), существует более 15 лет, имеет огромное сообщество (а значит и хорошую поддержку, множество специалистов), лёгкая в управлении.</p>
  <p>Под WordPress существует огромное количество действительно качественных тем и плагинов, что позволяет создавать красивые и функциональные сайты в считанные дни.</p>
  <p>Не составляет труда и написание <strong>индивидуальных решений</strong>. Например, мы используем API WooCommerce для обработки заказов и рассылки СМС, а если заморочиться, то можно даже написать мобильное приложение под Android или iOS. В этом плане WordPress чуть ли не единственная CMS имеющая API из коробки.</p>
  <p><strong>Из минусов</strong> такой популярности можно назвать обилие вирусов (распространяются вместе с пиратскими nulled плагинами и темами) и ботнет-сетей, которые активно спамят в комментариях. К счастью, существует множество решений для защиты WordPress сайтов.</p>
  <h3>Выводы в двух словах</h3>
  <p>Если вы программист, а сайт нужен вам для тренировки, а не заработка - можете собрать его самостоятельно на каком-нибудь фреймворке или движке, а остаток жизни посвятить его доработке.</p>
  <p>Сайт-одностраничник или заглушку однозначно нужно делать на чистом коде - это быстро и Google явно оценит.</p>
  <p>Серьёзный интернет-магазин или корпоративный сайт придётся делать на одной из популярных CMS. Если в вашем штате есть программисты, а у вас неограниченный бюджет - Opencart и Joomla ваш выбор.</p>
  <p>Рациональные люди выбирают WordPress. Он не идеален, но стремится к этому - 63% не могут ошибаться. Благодаря огромному количеству тем и плагинов собрать полноценный сайт на WordPress можно за один вечер, а обслуживать его сможет даже школьник. Главное, чтобы он не занес вам вирусы.</p>

]]></content:encoded></item></channel></rss>