Protect the internet’s phone book DNS (Domain Name System) servers are domain servers that take the domain names that we entered and provide us with IP addresses. Modifying the DNS record could send someone to an IP address that they were not expecting. It’s less common now but it still does happen. Why is DNS poisoning so dangerous? The user is not clicking on a link that takes them to a separate website. The victim types in a correct domain name, like medium.com, and is instead directed to the attacker’s website. The attacker can then take whatever information they want, as

Stop script injections cold Cross Site Scripting is a common vulnerability in web applications. It’s estimated that 60% of all websites are susceptible to this attack. What is cross site scripting (XSS)? Cross Site Scripting, or XSS, is a technique for injecting malicious code into another website. Persistent Cross Site Scripting Let’s say that an attacker is able to send a piece of JavaScript code through a form on a legitimate website that stores the malicious code within the database of the website. That JavaScript code can then wreak havoc on other users since that JavaScript code is then returned to the

Know the enemy within Malware is a type of malicious software that can infect your computer and infiltrate all of your data. It’s often used to steal personal information or spread other types of malware. The best way to protect yourself from malware is to keep up-to-date with security patches and always use antivirus software on your device. It’s estimated that the total cost of malware related cybercrime is at $6 trillion. Yes, trillion with a T. Read More. What is Malware? Malware is a type of software that can be used to damage or disable computers and computer systems. Malware

Data security’s three unbreakable pillars The CIA triad is an important security principle. It’s known as the “three-legged stool” because it ensures data confidentiality, integrity, and availability. Data must be protected from unauthorized access at all times. If any one leg of your stool is breached, then you have to replace it with another one that meets the same security standards as the first one did before you can continue operating effectively in this new environment where there are now multiple potential threats that could compromise your business operations and/or personal information security. The CIA triad is an important security

Write, run, repeat Now, I know that we’ve already covered a Python script in the previous article, but that was used simply for testing in order to set our environment up. We’re here to learn Python, so lets take a step back and do this the right way. I like themes with my series, and here are a few that I was thinking about following: Cars (always my favorite) Doom and destruction (seems appropriate with all the AI warning signs going off) Just pure fun (sometimes I go overboard) I think we’ll stick to cars. My hope is to not

Debug inside the container—directly from PyCharm In the previous article, we looked at setting up Python with Docker. We skipped all of the environment headaches. If you’re using PyCharm, you might have noticed that everything is underlined red, like your code is broken. Let’s fix that with Docker again. https://www.dinocajic.com/python-p1-getting-started-with-python-and-docker-compose/ Open up PyCharm and go to your interpreter. It should be at the bottom right of your screen.   Select Add New Interpreter and then Docker. We already have a Dockerfile inside of our project so we can simply leave the settings as is. If you don’t see Docker on

Containerize your first Python project in minutes Docker is one of those environments that I can’t live without anymore. It’s interesting that there aren’t many resources that discuss getting a basic Python script going with Docker and docker-compose. Let’s see how simple this is to do with Python. Create a new directory for your project and navigate into it: mkdir python_test cd python_test Create a new file called Dockerfile with the following content: FROM python:3.11-slim-buster WORKDIR /app COPY requirements.txt ./ RUN pip install –no-cache-dir -r requirements.txt COPY . . CMD [ “python”, “app.py” ] This Dockerfile sets up a Python 3.11 environment,

The language that does it all I jumped into this Python tutorial series without explaining why one might want to learn Python in the first place. Python is a high-level, interpreted programming language that was first released in 1991 by Guido van Rossum. It is named after Monty Python, the British comedy group, which explains why many of its tutorials and examples use humorous references. https://www.dinocajic.com/python-p1-getting-started-with-python-and-docker-compose/ Python is designed to be easy to learn and read, with a syntax that emphasizes readability and reduces the cost of program maintenance. Its simple and elegant syntax has made it popular among beginners,

Compose complex layouts with multiple slots In the previous article, we looked at the $slot variable and how to inject content into our components. But what if our component was composed of multiple slots? Make different components you say? We could, but sometimes that’s just not practical. There can be over-segmentation. https://www.dinocajic.com/laravel-p69-blade-slots-intro/ To illustrate this concept, I’ll create a resources/views/components/details.blade.php file. The component will contain the details tag that’s standard with HTML. It just allows for the text to be clicked on and expanded. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details The structure of the details tag is as follows: <details> <summary>Details</summary> Something small enough to escape casual notice. </details> We would like to

Plug content into components with ease Aside from passing attribute data to blade components, sometimes you need to pass a large chunk of data. That data can be displayed through slots. Laravel renders the data by echoing out the $slot variable. https://www.dinocajic.com/laravel-p68-defining-custom-directives-in-blade/ We’ll start by creating a button component. All we want to be able to do with our button component is change the inner-text. It’ll be located in resources/views/components/button.blade.php. <button class=”btn”> {{ $slot }} </button> To use it, we’ll create a new Blade file: resources/views/blade-test/index.blade.php. <x-button> Test </x-button> We just need a route to display it. Route::get(‘/blade-slots’, function () { return view(‘blade-slots.index’); });