Common Web Application Technologies
Thilan Dissanayaka Application Security March 30, 2020

Common Web Application Technologies

JWT - JSON Web Tokens

JWT is short for JSON Web Token. It is a compact and secure way to send information between two parties – like a client (browser) and a server.

We usually use JWTs to:

  • Log users in
  • Keep them logged in
  • Allow or deny access to parts of an app

JWTs are very common in modern web apps, especially in single-page apps (SPAs), mobile apps, and APIs.

A JWT has three parts, separated by a dot

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJ1c2VybmFtZSI6ImpvaG4iLCJpZCI6IjEyMyJ9.
AbC1234567890xYz

These parts are:

  • Header – Tells which algorithm is used (like HS256)
  • Payload – Contains the data (like user ID, username)
  • Signature – A hash created using a secret key, used to verify the token is not changed.

Why use JWT?

  • Stateless: The server doesn’t need to remember sessions.
  • Portable: Can be used across web, mobile, and APIs.
  • Secure: Can be verified and signed (but keep secrets safe!).

JWTs can be secure if used correctly:

  • Use HTTPS always.
  • Keep your secret key hidden.
  • Don’t store sensitive data like passwords in the token.
  • Set an expiration time for tokens.

Common Mistakes to Avoid

  • Storing JWTs in localStorage without thinking about XSS (cross-site scripting)
  • Not setting an expiry (exp) for the token
  • Using weak or public secret keys
  • Trusting data inside the token without verifying

Cookies

Cookies are small pieces of data stored on the browser by websites. They are used to remember information about the user, like:

  • Whether the user is logged in
  • User preferences (like language or theme)
  • Items in the shopping cart

What does a cookie look like? A cookie is just a name-value pair, like this:

token=abc123xyz;

The browser automatically sends cookies to the server with every request (for that domain).

Types of Cookie Options When a server sets a cookie, it can define options like:

Option What It Does
HttpOnly Stops JavaScript from reading the cookie (protects from XSS)
Secure Sends cookie only over HTTPS (not HTTP)
SameSite Controls cross-site sending (protects from CSRF)
Expires / Max-Age Controls how long the cookie stays alive
Path Controls which paths get the cookie
Feature Cookies (HttpOnly) Local Storage
Auto-sent to server Yes No
Accessible by JS No Yes
Secure from XSS Yes (HttpOnly) No
Secure from CSRF Needs SameSite Yes (not sent automatically)
Storage limit Small (~4KB) Larger (~5MB)

Local Storage

What is Local Storage? Local Storage is a feature in your web browser that allows websites to store data on your computer. It’s part of the Web Storage API.

Unlike cookies, local storage:

  • Is not sent to the server automatically
  • Can only be accessed using JavaScript
  • Can store more data (usually up to 5–10MB)

What can you store in localStorage? You can store things like:

JWT tokens

User preferences (theme, language)

Form inputs

Temporary app state

How to use localStorage (Examples)

// Save a value
localStorage.setItem('token', 'abc123');

// Get a value
const token = localStorage.getItem('token');

// Remove a value
localStorage.removeItem('token');

// Clear all local storage
localStorage.clear();

All values are stored as strings, so if you’re saving objects, you must use JSON.stringify() and JSON.parse():

const user = { id: 1, name: 'Alice' };
localStorage.setItem('user', JSON.stringify(user));

const storedUser = JSON.parse(localStorage.getItem('user'));

Is localStorage safe for JWT? No, not really. Here’s why:

Risk Description
XSS Attack If your site is vulnerable to XSS, a hacker can steal tokens from localStorage
Not Secure Tokens are not encrypted and visible in dev tools

So, while localStorage is convenient, it’s not recommended for sensitive data like access tokens or JWTs unless you are 100% sure your site is protected from XSS.

When to Use Local Storage?

  • To store non-sensitive data like UI settings, dark mode, language preference.
  • In development or demo apps.
  • When you control the frontend and backend and are careful with security.

DOM - Document Object Model

It’s how your browser sees and works with a web page.

When you open an HTML file in your browser, it turns the HTML into a tree-like structure made up of objects. This structure is called the DOM.

Think of the DOM as a live map of your webpage that JavaScript can read and change.

Example: Here’s some simple HTML:

<html>
  <body>
    <h1>Hello, world!</h1>
    <p>This is a paragraph.</p>
  </body>
</html>

The DOM version of this would look like a tree:

Document
└── html
    └── body
        ├── h1
        │   └── \"Hello, world!\"
        └── p
            └── \"This is a paragraph.\"

Each part of the HTML (like h1 or p) becomes a node (or object) in the DOM tree.

JavaScript uses the DOM to:

  • Read content from the page
  • Change text, style, or structure
  • Add or remove elements
  • Handle user actions (clicks, typing, etc.)

Common DOM operations with JavaScript

const title = document.querySelector('h1');

title.textContent = 'Welcome!';
title.style.color = 'blue';

const newParagraph = document.createElement('p');
newParagraph.textContent = 'New paragraph!';
document.body.appendChild(newParagraph);

AJAX - Asyncrhonous Javascript And XML

Using fetch() (modern and easy):

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => {
    console.log(data); // Do something with the data
  });

Sending data (POST request):

fetch('https://api.example.com/login', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ username: 'thilan', password: '12345' })
})
  .then(res => res.json())
  .then(data => {
    console.log(data); // Show login result
  });

What makes AJAX special?

Feature Description
Asynchronous Doesn’t block or freeze the page
Fast Only updates parts of the page
Dynamic Enables live content and interactions
Smooth UX User experience is better and modern

Usages

  • Live search
  • chat
  • auto-save
  • dashboards, etc
ALSO READ
Beyond the Basics: Understanding Java's OOP Philosophy
Jun 13, 2020 Computing Concepts

I used to build software using the MERN stack and PHP for some time. Back then, I was a Java hater. I loved the freedom of JavaScript and PHP. It felt easy, flexible, and fast. No strict types, no...

Privacy Policy
Jun 12, 2020 Computing Concepts

Last updated: Date Introduction Welcome to Hacksland.net (“we,” “us,” or “our”). Your privacy is very important to us. This Privacy Policy explains how we collect, use, and protect your personal data...

About Us
Jun 11, 2020 Computing Concepts

Welcome to Hacksland, your go to corner on the internet for computer science and cyber security related articles. Our Story Hi! I’m Thilan Dissanayaka, the face (and fingers on the keyboard) behind...

Batch scripting for Hackers
Jun 09, 2020 Penetration Testing

Batch Scripting for Hackers Chapter 1: Your First Batch Script Let's create your first Windows batch file. Open Notepad and follow along: What's different from Bash? Batch files end with or No need...

BASH scripting for hackers
Jun 08, 2020 Penetration Testing

Chapter 1: Your First Script Let's start with something simple. Open your terminal and follow along: What happened here? We created a file called We tried to run it, but got \"Permission denied\" We...

MQTT – The Heart of IoT Communication
Jun 07, 2020 Hardware Hacking

In the world of IoT (Internet of Things), devices need a lightweight and reliable way to communicate. Enter MQTT (Message Queuing Telemetry Transport)—a protocol designed for efficient and real time...

TryHackMe - Bugged Walkthrough
Jun 06, 2020 CTF Walkthroughs

p Scan all 65,535 TCP portsDefault is top 1000 — never miss a port in OSCP. Hidden services often live on high portsThe IP of the target machineReplace with actual IP from TryHackMe (e.g.,...

Real Hackers Don’t Guess - They Nmap it!
Jun 05, 2020 Computer Networking

When you enter your first CTF or OSCP lab, there is one tool that becomes your best friend, your compass, and sometimes your only hope. That tool is Nmap. In the world of hacking, information is...

SSH - The Hero That Saved Your Passwords
Jun 04, 2020 Computer Networking

Admins were tired. For years, they used Telnet to log into remote servers. It worked—but it exposed every keystroke. If Alice typed her password, Trudy the attacker could see it. Networks were...

Telnet - The Old-School Tool of Networking
Jun 03, 2020 Computer Networking

Once upon a time, in the early days of networking, there was a mighty tool called Telnet. It allowed people to connect to computers remotely, type commands, and feel like wizards controlling machines...

OSCP Study Plan
Jun 02, 2020 Computing Concepts

Foundations & Enumeration Focus: Linux, networking, reconnaissance, and enumeration. Linux & Shell Mastery Linux file system, permissions, users/groups Service management (systemctl, ps, netstat,...

Audio Based Stegonography
Jun 01, 2020 Cryptography

Image based Steganography
May 31, 2020 Cryptography

Carbon APIMgt API reference
May 30, 2020 WSO2

MeApi GET /me/organization information Using this operation, logged in user can get their organization information. apim:api create, apim:api manage, apim:api publish SettingsApi GET /settings...

The Linked List Data structure
May 29, 2020 DSA

Append at head New head's next = prev head Append at tail New tail's next = null Prev tail's next = new tail Delete by key Reversing a Linked List

Move all zeros to an end
May 28, 2020 DSA

Second largest element of an array fgdf Most suitable approach

Finding the Second Largest Element in an Array
May 27, 2020 DSA

Hi all, Here I'm back with another algorithmic problem. This is a classical interview question asked almost everywhere. As you may know, I recently did a Software Engineering internship at WSO2....

Blockchain 0x300 – Wallets and Signing transactions
May 26, 2020 Web3 Development

So far, we've built the core of our blockchain and implemented basic transactions. But a blockchain without security is like a safe without a lock anyone can tamper with it. In this post, we’re going...

	Blockchain 0x500 – Mining and Rewards
May 25, 2020 Web3 Development

Blockchain 0x400 – Multi node Blockchains
May 24, 2020 Web3 Development

So far, your blockchain runs on a single node — one machine holding all the blocks and transactions. But a real blockchain (like Bitcoin or Ethereum) runs on thousands of nodes, each keeping a copy...

Blockchain 0x200 – Introducing Transactions to the Core Blockchain
May 23, 2020 Web3 Development

In last tutorial we built a functioning block chain. Now we are going to improve it. Did you remember. Our primary goal was to store transactions in an immutable ledger. So here lets see how we can...

Blockchain 0x100 – Developing the Core Blockchain Structure
May 22, 2020 Web3 Development

If you are into Web3 development, the term blockchain is not a new thing to you. In the last blog post of this series, I explained most of the core concepts behind how a blockchain works. Learning...

Blockchain 0x000 – Understanding the Fundamentals
May 21, 2020 Web3 Development

Imagine a world where strangers can exchange money, share data, or execute agreements without ever needing to trust a central authority. No banks, no intermediaries, no single point of failure yet...

DES - The First Modern Cipher
May 17, 2020 Cryptography

If you are interested in cryptography, you must have heard about the AES algorithm. AES stands for Advanced Encryption Standard, and today it is one of the most widely used encryption algorithms....

Classical Ciphers - Where Cryptography Began
May 15, 2020 Cryptography

Long before computers, before the internet, even before electricity, people needed to keep secrets. Military commanders needed to send orders without the enemy understanding them. Lovers wanted to...

Exploiting a classic buffer overflow vulnerability
May 14, 2020 Exploit Development

Hello there. In this tutorial we are going to learn Linux exploit development. We use Protostar Linux VM for this purpose. Protostar was developed by exploit exercises.com. Unfortunately the host...

How I developed the CTF Playground
May 13, 2020 CTF Walkthroughs

Red Cypher  CTF walkthrough - Capturing The Professor
May 12, 2020 CTF Walkthroughs

Have you ever wondered what it feels like to solve puzzles that challenge your mind, test your technical skills, and sometimes make you pull an all nighter? That’s exactly what a CTF – Capture The...

Identity and Access Management (IAM)
May 11, 2020 Computing Concepts

“Who are you — and what are you allowed to do?” That’s the fundamental question every secure system must answer. And it’s exactly what Identity and Access Management (IAM) is built to solve. 🧩...

Active Directory
May 10, 2020 Computer Networking

If you’ve ever worked in a corporate IT environment, chances are you’ve heard of Active Directory (AD). It’s one of the most widely used directory services in the world, powering authentication and...

SMB - Simple Message Block Protocol
May 09, 2020 Computer Networking

Windows Memory Layout: A Security Researcher's Guide
May 08, 2020 Exploit Development

Understanding Windows memory layout is crucial for security researchers, reverse engineers, and anyone working in cybersecurity. This guide explores how Windows organizes process memory, the security...

How I built a web based CPU Simulator
May 07, 2020 Pet Projects

As someone passionate about computer engineering, reverse engineering, and system internals, I've always been fascinated by what happens \"under the hood\" of a computer. This curiosity led me to...

CORS - Cross Origin Request Sharing
May 05, 2020 Computer Networking

Cross Origin Resource Sharing (CORS) is a crucial web security mechanism that controls how web pages from one domain can access resources from another domain. Understanding CORS is essential for...

SSRF - Server Side Request Forgery
May 04, 2020 Application Security

Server Side Request Forgery (SSRF) is a web security vulnerability that allows an attacker to induce the server side application to make HTTP requests to an arbitrary domain of the attacker's...

SYN flooding - The basic of DOS Attacks
May 03, 2020 Computer Networking

SYN flood attack is a classic way to understand Denial of Service (DoS) attacks and how TCP resource exhaustion works. It's a common attack vector in security assessments, and knowing how it works...

TCP and Its Three-Way Handshake
May 01, 2020 Computer Networking

In the world of networking, reliable communication is critical. Whether you're streaming a video, browsing a website, or sending a file, chances are the Transmission Control Protocol (TCP) is working...

HTTP Header Injection Explained
Apr 30, 2020 Computer Networking

HTTP Header Injection is a critical web security vulnerability that occurs when an application allows user controlled input to be inserted into HTTP response headers without proper validation or...

XSS in Modern Single Page Applications
Apr 29, 2020 Application Security

While React provides several built in protections against Cross Site Scripting (XSS) attacks, it's still possible to introduce XSS vulnerabilities in React applications. This comprehensive guide...

XSS - The Ultimate guide for Cross Site Scripting
Apr 28, 2020 Application Security

Cross Site Scripting (XSS) is one of the most prevalent and dangerous web application security vulnerabilities. According to OWASP, XSS consistently ranks among the top 10 web application security...

CSRF - Cross Site Request Forgery
Apr 27, 2020 Application Security

Cross Site Request Forgery (CSRF) is a web security vulnerability that allows an attacker to induce users to perform actions that they do not intend to perform. It occurs when a malicious website,...

Application Security - Interview preparation guide
Apr 25, 2020 Interview Guides

1. What is application security? Application security refers to the measures and practices implemented to protect applications from security threats throughout their development lifecycle and...

From NSA to WannaCry - The Story of EternalBlue
Apr 23, 2020 Malware

From NSA weapon to global cyber pandemic – understanding the exploit that changed cybersecurity forever Introduction: The Digital Skeleton Key Imagine if someone created a master key that could...

NotPetya - The Digital Wildfire
Apr 22, 2020 Malware

June 27, 2017. It started like any other Tuesday morning in Ukraine. Office workers grabbed their coffee, turned on their computers, and unknowingly witnessed the beginning of what would become the...

Writing a Shell Code for Linux
Apr 21, 2020 Exploit Development

Linux Shellcode Development Tutorial 32 bit Systems Introduction Shellcode is a small piece of code used as the payload in the exploitation of a software vulnerability. Understanding shellcode...

SSDLC - Security from the Ground Up
Apr 20, 2020 Penetration Testing

In an era where cyberattacks make headlines daily and data breaches can destroy companies overnight, treating security as an afterthought is no longer viable. Organizations that build security into...

Digital Signatures in Cryptography
Apr 18, 2020 Cryptography

Digital signatures combine asymmetric encryption and hashing to provide authentication, non repudiation, and integrity. How it Works Alice creates a hash of her message Alice encrypts the hash with...

AES - Advanced Encryption Standard
Apr 16, 2020 Cryptography

In today's digital world, encryption serves as the foundation of our security infrastructure. Among various encryption algorithms, the Advanced Encryption Standard (AES) stands as one of the most...

How does SLL work?
Apr 15, 2020 Cryptography

Every time you see that small padlock icon in your browser's address bar, you're witnessing one of the internet's most important security technologies at work. This tiny symbol represents SSL/TLS—the...

Exploiting a Stack Buffer Overflow on Windows
Apr 12, 2020 Exploit Development

In a previous tutorial we discusses how we can exploit a buffer overflow vulnerability on a Linux machine. I wen through all theories in depth and explained each step. Now today we are going to jump...

My Books Collection
Apr 11, 2020 Computing Concepts

my books collection

Directory Traversal Attacks
Apr 09, 2020 Cryptography

Directory traversal attacks may sound technical, but they're actually quite simple to understand. These attacks can have serious consequences for websites and their users, so it's important to know...

Access Control Models
Apr 08, 2020 Computing Concepts

Discretionary Access Control (DAC) 📘 Definition: Discretionary Access Control is a model where the resource owner (usually a user) decides who can access the resource and what operations they can...

Secure Software Development Life Cycle - SSDLC
Apr 07, 2020 Penetration Testing

What is Secure SDLC? Secure SDLC (Secure Software Development Life Cycle) is the practice of integrating security into every phase of the software development lifecycle — from planning to deployment...

Server-Side Request Forgery
Apr 06, 2020 Application Security

SSRF (Server Side Request Forgery) is a type of security vulnerability where an attacker tricks a server into making a request to another internal or external system that the attacker shouldn’t have...

Common Networking Protocols
Apr 05, 2020 Computer Networking

IP TCP UDP HTTP HTTPS DHCP SSH Telenet FTP SFTP SMB RDP SNMP RIP SMTP IMAP POP3 LDAP WPA2 WPA3 IPsec WEP

Exploiting a  Stack Buffer Overflow  on Linux
Apr 01, 2020 Exploit Development

Have you ever wondered how attackers gain control over remote servers? How do they just run some exploit and compromise a computer? If we dive into the actual context, there is no magic happening....

Exploring the WSO2 Products and Service Stack
Mar 28, 2020 WSO2

WSO2 offers a comprehensive, open source first platform designed to simplify API management, integration, identity management, and cloud native application development. Whether you're building modern...

Kubernetes - Interview preparation guide
Mar 25, 2020 Interview Guides

What is Kubernetes and why is it used? Kubernetes (K8s) is an open source container orchestration platform that automates: Deployment Scaling Load balancing Management of containerized applications...

Docker - Interview preparation guide
Mar 24, 2020 Interview Guides

What is Docker and why is it used? Docker is a platform for developing, shipping, and running applications in containers. Containers package an application with its dependencies, ensuring consistency...

CI/CD concepts - Interview preparation guide
Mar 23, 2020 Interview Guides

What is CI/CD? CI/CD stands for Continuous Integration and Continuous Delivery/Deployment. CI is the practice of automatically integrating code changes from multiple contributors into a shared...

GraphQL - Interview preparation guide
Mar 22, 2020 Interview Guides

What is GraphQL? GraphQL is a query language for APIs and a runtime for executing those queries. It allows clients to request exactly the data they need, reducing over fetching and under fetching...

Kafka - Interview preparation guide
Mar 21, 2020 Interview Guides

What is Apache Kafka? Apache Kafka is a distributed event streaming platform designed for high throughput, fault tolerant, and real time data streaming. It is used for building real time data...

REST API - Interview preparation guide
Mar 20, 2020 Interview Guides

What is a REST API? A REST (Representational State Transfer) API is an architectural style for designing networked applications. It uses standard HTTP methods to interact with resources, making it...

AWS - Interview preparation guide
Mar 19, 2020 Interview Guides

What is Amazon EC2 and what are its features? Amazon EC2 (Elastic Compute Cloud) is a web service that provides resizable compute capacity in the cloud. It allows you to launch and manage virtual...

Penetration Testing - Interview preparation guide
Mar 17, 2020 Interview Guides

Fundamentals of Penetration Testing What is penetration testing? Penetration testing, or ethical hacking, involves simulating cyberattacks on systems, networks, or applications to identify and...

API Management - Interview preparation guide
Mar 16, 2020 Interview Guides

What is an API? An API (Application Programming Interface) is a set of rules and protocols that allows different software applications to communicate with each other. It defines methods and data...

Java - Interview preparation guide
Mar 14, 2020 Interview Guides

Keywords Data types and Operators Strings Threads OOP in Java Exceptions Java Keywords What is the use of final keyword? The final keyword in Java is used to indicate that a variable, method, or...

IAM Concepts - Interview preparation guide
Mar 13, 2020 Interview Guides

What is IAM (Identity and Access Management)? IAM is a framework of policies, processes, and technologies used to manage digital identities and control access to resources. It ensures the right users...

Tic-Tac-Toe Game with Atmega 256 MicroController
Mar 06, 2020 Hardware Hacking

In this blog, I’ll walk you through how I built a Tic Tac Toe game using an AVR microcontroller, a 4x3 keypad, and a 3x3 grid of LEDs. This project is a fun way to combine embedded programming, game...

OAuth: The Secret Behind \
Mar 05, 2020 Computing Concepts

Ever clicked that handy \"Sign in with Google\" button instead of creating yet another username and password? You're not alone! Behind that convenient button lies a powerful technology called OAuth...

Simple Substitution Algorithms
Mar 04, 2020 Cryptography

A substitution algorithm is a method of encryption where elements of the plaintext (the original message) are replaced with other symbols or characters. The main idea is: Replace each letter or group...

Networking  0x100 - IP Addressing and Subnets
Mar 02, 2020 Computer Networking

Internet Protocol (IP) Addressing is a core concept of networking. It enables devices to identify and communicate with each other over a network, especially the internet. In this tutorial we are...

Basic concepts of Cryptography
Mar 01, 2020 Cryptography

Ever notice that little padlock icon in your browser's address bar? That's cryptography working silently in the background, protecting everything you do online. Whether you're sending an email,...

What is Malware analysis?
Feb 29, 2020 Malware

Malware Analysis is the process of: Examining malicious files (viruses, worms, trojans, ransomware, etc.) Understanding how they work Finding Indicators of Compromise (IoCs) Figuring out what damage...

Basic steps in Penetration Testing
Feb 28, 2020 Penetration Testing

Penetration Testing (PenTest) is a legal and authorized simulated cyberattack against a system to identify vulnerabilities before real attackers do. A proper penetration test follows a structured...

Netcat The Hacker's Swiss Army Knife
Feb 27, 2020 Computer Networking

Netcat, often abbreviated as , is a versatile command line networking tool that can be used for almost anything related to TCP, UDP, or UNIX domain sockets. It's beloved by network engineers,...

Stack Buffer Overflow vulnerbility
Feb 24, 2020 Exploit Development

Buffer overflow vulnerabilities are one of the most common yet deadly flaws in software security. They can be leveraged by attackers to gain control over a system, run arbitrary code, and escalate...

Building and Extending a PHP Web Shell
Feb 16, 2020 Penetration Testing

A web shell is a script that enables an attacker to gain remote control over a web server. It is especially useful for post exploitation tasks, allowing an attacker to execute arbitrary commands...

Error based SQL Injection
Feb 15, 2020 Application Security

In the previous example, we saw how a classic SQL Injection Login Bypass works. SQL Injection is not all about that. The real fun is we can extract the data from the database. In this tutorial, we...

Out of Band SQL Injection
Feb 14, 2020 Application Security

Out of Band SQL Injection (OOB SQLi) is an advanced SQL injection technique where the attacker cannot retrieve data directly through the same communication channel used to send the injection payload....

Time based Blind SQL Injection
Feb 13, 2020 Application Security

Blind SQL Injection happens when: There is a SQL injection vulnerability, BUT the application does not show any SQL errors or query outputs directly. In this case, an attacker has to ask questions to...

Boolean based Blind SQL Injection
Feb 12, 2020 Application Security

Blind SQL Injection happens when: There is a SQL injection vulnerability, BUT the application does not show any SQL errors or query outputs directly. In this case, an attacker has to ask questions to...

 OWASP Top 10 explained - 2021
Feb 11, 2020 Application Security

The Open Worldwide Application Security Project (OWASP) is a nonprofit foundation focused on improving the security of software. It provides free, vendor neutral tools, resources, and standards that...

SQL injection login bypass
Feb 10, 2020 Application Security

SQL Injection (SQLi) is one of the oldest and most fundamental web application vulnerabilities. While it’s becoming rarer in modern web apps due to better coding practices and frameworks,...

Common Web Application Attacks
Feb 05, 2020 Application Security

Web applications are one of the most targeted surfaces by attackers. This is primarily because they are accessible over the internet, making them exposed and potentially vulnerable. Since these...

Observer Pattern explained simply
Feb 04, 2020 Software Architecture

When one object needs to notify many other objects about changes in its state automatically, the Observer Pattern steps in. What is the Observer Pattern? Defines a one to many dependency between...

Abstract Factory Pattern explained simply
Feb 03, 2020 Software Architecture

When you want to create families of related objects without specifying their concrete classes, the Abstract Factory Pattern is your best friend. What is the Abstract Factory Pattern? Provides an...

Factory Pattern explained simply
Feb 02, 2020 Software Architecture

Factory Pattern Imagine you want to create objects — but you don't want to expose the creation logic to the client and instead ask a factory class to create objects for you. That's exactly what the...

Decorator Pattern explained simply
Feb 01, 2020 Software Architecture

When you want to add new functionalities to an object without modifying its structure, the Decorator Pattern comes to the rescue. The Decorator Pattern lets you dynamically wrap objects with new...

Proxy Pattern explained simply
Jan 31, 2020 Software Architecture

Sometimes you don't want or can't allow direct access to an object. Maybe it's expensive to create, needs special permissions, or you want to control access in some way. This is where the Proxy...

Template Pattern explained simply
Jan 30, 2020 Software Architecture

Ever found yourself writing similar logic over and over, only to change a few steps each time? That’s exactly what the Template Pattern helps you solve. The Template Pattern is a behavioral design...

Adapter Pattern explained simply
Jan 29, 2020 Software Architecture

Ever needed to connect two incompatible interfaces without changing their source code? That’s exactly where the Adapter Pattern shines! The Adapter Pattern is a structural design pattern that allows...

Singleton Pattern explained simply
Jan 27, 2020 Software Architecture

Ever needed just one instance of a class in your application? Maybe a logger, a database connection, or a configuration manager? This is where the Singleton Pattern comes in — one of the simplest but...

Developing a Ballerina conenctor for Zoom
Jan 22, 2020 WSO2

🚀 Excited to share my latest development – web3 – a CLI tool for Ballerina! This tool can automatically generate a Ballerina connector from any given smart contract. It simplifies integrating...

Building a Web3 CLI Tool for the Ballerina Language: From Idea to Reality
Jan 21, 2020 WSO2

🚀 Excited to finally share my journey of building a web3 CLI tool for Ballerina! This tool bridges the gap between Ethereum smart contracts and the Ballerina programming language by automatically...

Database Indexing: Speeding Up Your Queries Like a Pro
Jan 20, 2020 Database Systems

In the world of databases, speed matters. Whether you're powering an e commerce store, a social media app, or a business dashboard — users expect data to load instantly. That’s where database...

Database Normalization explained
Jan 19, 2020 Database Systems

Database normalization is a systematic approach to organizing data in a relational database. The primary goal of normalization is to reduce data redundancy and improve data integrity. It involves...

ACID Properties in Databases: The Key to Reliable Transactions
Jan 18, 2020 Database Systems

When working with databases, one thing is absolutely critical: keeping your data safe, consistent, and reliable. That's where ACID properties come in — a set of principles that ensure every database...

GDB reverse engineering tutorial
Jan 11, 2020 Exploit Development

hiii, I selected an interesting topic to discuss. Here, we are going to disassemble a binary file and take a look at what it does. This process is called reverse engineering. Let's run the program...

The Stack architecture explained
Jan 10, 2020 Exploit Development

The stack is an important concept in computer science. If you are planning to learn reverse engineering, malware analyzing, exploitation, etc., this concept is a must to learn. After learning about...

Debugging Binaries with GDB
Jan 09, 2020 Exploit Development

GDB is shipped with the GNU toolset. It is a debugging tool used in Linux environments. The term GDB stands for GNU Debugger. In our previous protostar stack0 walkthrough tutorial, we used GDB many...

Ballerina connector for Hubspot Schema API
Jan 08, 2020 WSO2

Hi all, It's a new article on something cool. Here we are going to see how we can use the Hubspot schema connector with Ballerina. When it comes to building connectors for seamless integration...

Introduction to Edge Computing
Jan 07, 2020 Computing Concepts

Edge computing is a distributed computing paradigm where computation and data storage are performed closer to the location where it is needed. Instead of relying solely on a centralized data center,...

Reverse TCP shell with Metasploit
Jan 06, 2020 Exploit Development

Metasploit is a powerful penetration testing framework that automates exploit development, generates shellcode, and acts as a listener for incoming connections. This tutorial introduces how to create...

Understanding Assembly Language: Purpose and Structure
Jan 05, 2020 Exploit Development

Assembly language is a low level programming language that provides a human readable representation of a computer's binary instructions. Unlike high level languages like C, C++, or Python, which are...

Build A Simple Web shell
Jan 03, 2020 Penetration Testing

A web shell is a type of code that hackers use to gain control over a web server. It is particularly useful for post exploitation attacks, and there are various types of web shells available. Some of...

Remote Command Execution
Jan 02, 2020 Application Security

Remote Command Execution (RCE) is a critical security vulnerability that allows an attacker to execute arbitrary commands on a remote server. This vulnerability can lead to unauthorized access, data...