<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marko</title>
    <description>The latest articles on DEV Community by Marko (@marko_k).</description>
    <link>https://dev.to/marko_k</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1639739%2Fb6a95d84-8440-4429-8674-050bfa419d05.jpg</url>
      <title>DEV Community: Marko</title>
      <link>https://dev.to/marko_k</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marko_k"/>
    <language>en</language>
    <item>
      <title>My first experience with the LAMP stack</title>
      <dc:creator>Marko</dc:creator>
      <pubDate>Mon, 17 Jun 2024 21:59:47 +0000</pubDate>
      <link>https://dev.to/marko_k/my-first-experience-with-the-lamp-stack-b0h</link>
      <guid>https://dev.to/marko_k/my-first-experience-with-the-lamp-stack-b0h</guid>
      <description>&lt;p&gt;I carried out this work as part of a university internship. It main task was to set up a web server with own resume, a login window and a connected mysql database.&lt;br&gt;
I want to share my first experience with the LAMP stack and perhaps help someone with this topic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brief theory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A software stack is a set of layered tools, libraries, programming languages, and technologies used to create, manage and run an application. The stack consists of software components that support the application in various ways, such as visualization, database, networking, and security.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LAMP stack architecture:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Linux is an open source operating system. Resides at the first level of the LAMP stack and supports other components at higher levels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Apache is an open source web server that forms the second layer of the LAMP stack. The Apache module stores website files and communicates with the browser using HTTP, an Internet protocol for transmitting website information in plain text.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MySQL is an open source relational database management system and the third layer of the LAMP stack. The LAMP model uses MySQL to store, query, and manage information in relational databases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PHP  Last in the stack is a scripting language that allows websites to run dynamic processes. A dynamic process involves information in software that is constantly changing. It is used to allow the web server, database, and operating system to process requests from browsers in a consistent manner.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Preparation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Installing Apache on Ubuntu.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Happens using the commands:&lt;br&gt;
sudo apt-get update – used to download package information from all configured sources&lt;br&gt;
sudo apt-get install apache2 – used to install Apache itself&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Installing MySQL&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install mysql-server&lt;/code&gt; – used to install mysql&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Installing PHP&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install php&lt;/code&gt; – used to install PHP&lt;/p&gt;

&lt;p&gt;&lt;em&gt;To check the results of installing the LAMP stack, let's create a test file:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nano /var/www/html/info.php&lt;/code&gt;&lt;br&gt;&lt;br&gt;
nano - text editor (you can use any one of your choice)&lt;br&gt;
Add &lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;! ?php phpinfo();? &amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap74sx8phmud0cortj9a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fap74sx8phmud0cortj9a.png" alt="1" width="624" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After this, restart apache2 with the command - &lt;code&gt;service apache2 restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Enter &lt;a href="http://my-ip-address/info.php"&gt;http://my-ip-address/info.php&lt;/a&gt; into our web browser&lt;/p&gt;

&lt;p&gt;This should appear:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fistiuxwpj4hte3q6we17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fistiuxwpj4hte3q6we17.png" alt="2" width="624" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a Web Server&lt;/strong&gt;&lt;br&gt;
By default, Apache comes with a built-in base site. You can change its contents in &lt;code&gt;/var/www/html&lt;/code&gt; or edit the settings.&lt;/p&gt;

&lt;p&gt;Virtual Host file located in Virtual Host which is located in &lt;code&gt;/etc/apache2/sites-enabled/000-default.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can change the algorithm for processing incoming requests or support several web resources on one web server using virtual host support.&lt;/p&gt;

&lt;p&gt;Let's create an example.html file for example.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo mkdir /var/www/test/&lt;/code&gt; - create a folder for your web server&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nano /var/www/test/ example.html&lt;/code&gt; – create a file example.html&lt;/p&gt;

&lt;p&gt;Let's write simple code in it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt; LAMP on Ubuntu! &amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt; I'm running this website on an Ubuntu Server!
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6t7uq0k5p9d99n4qsa3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe6t7uq0k5p9d99n4qsa3.png" alt="3" width="624" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;VirtualHost configuration&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;VirtualHost is a directive in the Apache web server configuration file, designed to map IP addresses, domains and directories available on the server, as well as manage the sites available on the server. The  tag specifies the IP addresses and ports that are used on the server.&lt;/p&gt;

&lt;p&gt;We will use the default configuration:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd /etc/apache2/sites-available/&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo cp 000-default.conf test.conf&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo nano test.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Edit for yourself:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmmodx5rd768ks5wb14s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmmodx5rd768ks5wb14s.png" alt="4" width="624" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8090 is the port on which my web server will listen.&lt;br&gt;
As part of the practical assignment, we had to create our resume on a web server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;CV&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body {
            font-family: Arial, sans-serif;
        }
        .resume {
            max-width: 600px;
            margin: 0 auto;
            padding: 20px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        h1, h2, h3 {
            color: #333;
        }
p {
            margin-bottom: 10px;
        }
        ul {
            list-style-type: none;
            padding-left: 0;
        }
        ul li::before {
            content: '\2022';
            color: #007bff;
            font-weight: bold;
            display: inline-block;
            width: 1em;
            margin-left: -1em;
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;div class="resume"&amp;gt;
    &amp;lt;h1&amp;gt;Name and surname&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;City, Country&amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;Email: .....@gmail.com&amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;Mobile phone: &amp;lt;/p&amp;gt;

    &amp;lt;h2&amp;gt;Education&amp;lt;/h2&amp;gt;
    &amp;lt;ul&amp;gt;
            &amp;lt;h3&amp;gt; School&amp;lt;/h3&amp;gt;
            &amp;lt;p&amp;gt;Primary, middle and high school&amp;lt;/p&amp;gt;
            &amp;lt;p&amp;gt;Semptember - June &amp;lt;/p&amp;gt;

            &amp;lt;h3&amp;gt;University &amp;lt;/h3&amp;gt;
            &amp;lt;p&amp;gt;Speciality: &amp;lt;/p&amp;gt;
            &amp;lt;p&amp;gt;Semptember - June &amp;lt;/p&amp;gt;

    &amp;lt;/ul&amp;gt;
&amp;lt;h2&amp;gt;Skills&amp;lt;/h2&amp;gt;
    &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;Programming on  HTML, C++, Python, PHP&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Use of database MySQL&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Knowledge of English at Intermediate level&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Knowledge of Windows and Linux Ubuntu at the administration level&amp;lt;/&amp;gt;
&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
            &amp;lt;/ul&amp;gt;

    &amp;lt;h2&amp;gt;Personal qualities&amp;lt;/h2&amp;gt;
    &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;Stress resistance&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Teamwork&amp;lt;/li&amp;gt;
        &amp;lt;li&amp;gt;Punctuality&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;

&amp;lt;/div&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Web server activation&lt;/em&gt;&lt;br&gt;
&lt;code&gt;sudo a2ensite test.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database creation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE DATABASE my_database;
USE my_database;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adding users using the command&lt;/p&gt;

&lt;p&gt;&lt;code&gt;INSERTT INTO ysers (name, email) values ​​('Elena', 'ElenaCon@gmail.com');&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Exit the editor using the command – &lt;code&gt;exit&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We give all privileges to our host using the commands:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON my_database. * TO 'Your@localhost';&lt;/code&gt;&lt;br&gt;
&lt;code&gt;FLUSH PRIVILEGES;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a login window&lt;/strong&gt;&lt;br&gt;
We create two files: one is the site itself for authorization (site.php)&lt;br&gt;
The second one is for connecting the authorization site to the database (connect.php)&lt;br&gt;
&lt;code&gt;nano /var/www/html site.php&lt;/code&gt;&lt;br&gt;
&lt;code&gt;nano /var/www/html connect.php&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Site.php code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Authorization&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h2&amp;gt;Authorization form&amp;lt;/h2&amp;gt;

&amp;lt;form action="connect.php" method="post"&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;lt;label for="name"&amp;gt;User name:&amp;lt;/label&amp;gt;
        &amp;lt;input type="text" id="name" name="name" required&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;lt;label for="email"&amp;gt;Email:&amp;lt;/label&amp;gt;
        &amp;lt;input type="email" id="email" name="email" required&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;button type="submit"&amp;gt;Login&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Code for connect.php:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;?php

$host = "localhost";
$username = ".....";
$password = ".....";
$database = "my_....";

$conn = new mysqli($host, $username, $password, $database);

if ($conn-&amp;gt;connect_error) {
    die("Error " . $conn-&amp;gt;connect_error);
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];
    $email = $_POST["email"];

    $sql = "SELECT * FROM users WHERE name='$name' AND email='$email'";
    $result = $conn-&amp;gt;query($sql);

if ($result-&amp;gt;num_rows &amp;gt; 0) {

        header("Location: http://you_ip_address:(port)");
}       else {
        echo "Error";
}

}


$conn-&amp;gt;close();
?&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the PHP extension to create a web server with a database using the command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;php –m | grep mysqli&lt;/code&gt;&lt;br&gt;
&lt;code&gt;apt-get install php-mysql&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;After calling these commands, PHP will act as a web server that can accept HTTP requests and process them.&lt;/p&gt;

&lt;p&gt;We start the web server using the command:&lt;br&gt;
&lt;a href="http://you_ip_address:(any"&gt;http://you_ip_address:(any&lt;/a&gt; port)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;br&gt;
Authorization page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9r92s5kdnicp5dz4y3fg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9r92s5kdnicp5dz4y3fg.png" alt="5" width="488" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CV page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc28jz0aa9k0ffoi0jhlq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc28jz0aa9k0ffoi0jhlq.png" alt="6" width="624" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I didn’t have any major difficulties creating my first web server. There were only moments that really slowed me down because they didn’t work out the first and second times, such as the correct operation of the database or the correctly written codes for the site.php and connect.php files. Overall, I really enjoyed studying this topic and now, as a result, I have my own web server, which can be used for new experiments, such as in my first article&lt;/p&gt;

</description>
      <category>linux</category>
      <category>apache</category>
      <category>mysql</category>
      <category>php</category>
    </item>
    <item>
      <title>Why is it dangerous to use the HTTP protocol on public Wi-Fi.</title>
      <dc:creator>Marko</dc:creator>
      <pubDate>Mon, 17 Jun 2024 14:12:45 +0000</pubDate>
      <link>https://dev.to/marko_k/why-is-it-dangerous-to-use-the-http-protocol-on-public-wi-fi-1gh</link>
      <guid>https://dev.to/marko_k/why-is-it-dangerous-to-use-the-http-protocol-on-public-wi-fi-1gh</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is HTTP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;HTTP is a hypertext transfer protocol that underlies the Internet. It`s located at the last layer of the OSI and TCP/IP model (application layer). HTTP is implemented in two programs: a client program and a server program. Client and server programs running on different end systems. They communicate with each other by exchanging HTTP messages. &lt;br&gt;
HTTP defines the structure of these messages and how the client and server exchange messages. The problem with this protocol is that the data is transmitted in clear text and anyone can intercept your traffic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is HTTPS&lt;/strong&gt;&lt;br&gt;
The problem with HTTP protocol is solved by its extended version HTTPS. HTTPs - HyperText Transfer Protocol Secure. This protocol adds to the regular version the ability to encrypt data using the TLS cryptographic protocol. The HTTPs protocol provides that when a connection is established, the client and server agree to use a temporary key with which they will encrypt and decrypt messages. This key is called a “session” key and is valid only for the current session. Each new session will generate a new key.&lt;br&gt;
To transfer a website to HTTPS, the owner must obtain a special certificate information from which is used to verify the authenticity of the web resource. Accordingly, the organization that issued such a certificate becomes a third party whose participation allows the users not to fear that their data will be stolen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The main danger of HTTP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What's so scary about the fact that traffic with the HTTP protocol is quite easy to intercept? By using sites with the HTTP protocol on the open network you are open to a person with bad intentions. He or she can easily intercept your traffic and be able to access your cookies, server software versions and see everything that you enter into various forms including bank cards , logins, passwords and other metadata that can be used to test the system or identify potential vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capturing an HTTP packet using WireShark&lt;/strong&gt;&lt;br&gt;
As I wrote earlier, the danger of the HTTP protocol is that its packets are quite easy to intercept, and now I will clearly demonstrate this. &lt;/p&gt;

&lt;p&gt;I created my own simple web server on Apache HTTP Server with an authorization window. How I created it will be described in the next article. Thanks to it, I can show how unprotected you will be with the HTTP protocol on an open network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsa4g0wivktcl0xrmkgsd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsa4g0wivktcl0xrmkgsd.png" alt="Authorization window" width="785" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You see a typical authorization window with the ability to enter a login and password (in my case it’s email, but this doesn’t change the essence).&lt;br&gt;
I enter hypothetical data.&lt;br&gt;
My web server has a database with existing users and if the data entered in the form does not correspond to the basic data, the tab with the basic information will not be displayed. Unfortunately, even without gaining access to the My web server has a database with existing users and if the data entered in the form does not correspond to the basic data, the tab with the basic information will not be displayed. Unfortunately, even without gaining access to the treasured information, your data can be stolen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7u24wcbn2rr3300k1bqw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7u24wcbn2rr3300k1bqw.png" width="800" height="74"&gt;&lt;/a&gt;&lt;br&gt;
WireShark has a convenient filtering feature. I will use it to quickly find the necessary http packages.&lt;br&gt;
We need the POST method because it could cause our data to end up in the hands of an attacker. POST is a method of sending data to the server, for example, after filling out a registration form or authorization on a website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmu11yodhnl2n6fcz2rf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmu11yodhnl2n6fcz2rf.png" width="714" height="462"&gt;&lt;/a&gt;&lt;br&gt;
Click “Follow TCP Stream” and get a window in which the entire exchange between two nodes will be clearly demonstrated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghp5e9duxscz4bl45bor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghp5e9duxscz4bl45bor.png" width="624" height="334"&gt;&lt;/a&gt;&lt;br&gt;
And look! Without any encryption we are presented with a login and email (there could be a password).&lt;/p&gt;

&lt;p&gt;I hope my article clearly showed why you CANNOT use sites with an unsecured HTTP protocol especially on open unsecured networks where all your network traffic is in full view. I also advise you not to enter confidential information through an unsecured network. Again, your traffic can be intercepted. If you want to protect yourself, use a VPN.&lt;/p&gt;

</description>
      <category>http</category>
      <category>https</category>
    </item>
  </channel>
</rss>
