Posts

Showing posts with the label programming

XSS Security Handling with NextJS and DOMPurify

Image
Introduction Cross-Site Scripting (XSS) is a security vulnerability that allows attackers to inject malicious scripts, typically JavaScript, into web pages viewed by other users. When a user's browser executes this code, attackers can steal cookies, session tokens and alter the website interface. To prevent XSS, the following primary methods are used: Validation: Accepting only desired data formats. This simple approach only addresses surface-level issues, so we focus on the methods below for better effectiveness. Sanitization: Removing or disabling dangerous HTML tags and attributes such as <script> , onerror and onclick from user input before storage or display. Using Framework Automations: React and NextJS automatically escape data in text strings by default. When rendering HTML directly via dangerouslySetInnerHTML , using a library like DOMPurify is mandatory to ensure safety. Content Security Policy (CSP): Configuring browser policies to restrict script execution s...

Python Practice Series

Image
Introduction Python is a high-level, general-purpose programming language with exceptionally clear and readable syntax, designed to optimize programmer productivity. Some outstanding advantages of Python include: Easy to learn and use: Its syntax, which resembles English, helps beginners quickly get accustomed. Rich libraries: Possesses a massive ecosystem of libraries supporting everything from web development, data analysis, to artificial intelligence. Cross-platform: Can run on Windows, macOS, and Linux without needing to change the source code. Strong community: Has widespread support from a global community of developers, making error resolution easier. Detail Guide to Managing Python Environments with pyenv and Poetry Using mlx-lm to run local LLM Deploying a Python Flask Server to Google Kubernetes Engine Happy coding!

Golang Practice Series

Image
Introduction Golang (or Go) is an open-source programming language developed by Google in 2007 and officially launched in 2009 by leading engineers including Robert Griesemer, Rob Pike and Ken Thompson . Go was designed to solve problems regarding performance, source code complexity and system scalability in the Cloud Native era. Advantages High performance ( Compiled Language ): Go compiles directly into machine code without going through an intermediate execution environment like JVM , resulting in extremely fast execution speeds and very low hardware resource consumption. Superior asynchronous processing (Concurrency): Go possesses a super-lightweight Goroutine mechanism (costing only about 2KB of initial memory compared to several MB for traditional Threads ) combined with Channels , allowing for easy handling of millions of concurrent connections. Simple syntax, easy to learn: Go syntax is simplified, eliminating complex concepts (such as class inheritance, funct...

Explanation of SOLID in OOP

Image
Introduction SOLID is a set of five fundamental principles that support enhancing maintainability and ease of extension for future software development. Introduced by software engineer Robert C. Martin, also known as "Uncle Bob," in the book "Design Principles and Design Patterns," the SOLID principles include: S - Single Responsibility Principle O - Open/Closed Principle L - Liskov Substitution Principle I - Interface Segregation Principle D - Dependency Inversion Principle Below, we'll provide detailed explanations and analysis for each principle. Note that the examples in this article are implemented using TypeScript , but you can rewrite them in other object-oriented programming languages . 1. Single Responsibility Principle (SRP) A class should have one and only one reason to change, meaning that a class should have only one job. This is considered the simplest and most crucial principle because it relates to most of the other principles. Simply put, when ...