<?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: Fahad Bin Siddique</title>
    <description>The latest articles on DEV Community by Fahad Bin Siddique (@fahadbinsiddique).</description>
    <link>https://dev.to/fahadbinsiddique</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4000919%2Fd78874e4-ef10-4a98-a328-157d80a3f9ef.png</url>
      <title>DEV Community: Fahad Bin Siddique</title>
      <link>https://dev.to/fahadbinsiddique</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fahadbinsiddique"/>
    <language>en</language>
    <item>
      <title>Protecting applications against SQL Injection, XSS, and CSRF.</title>
      <dc:creator>Fahad Bin Siddique</dc:creator>
      <pubDate>Wed, 26 Aug 2026 17:45:10 +0000</pubDate>
      <link>https://dev.to/fahadbinsiddique/protecting-applications-against-sql-injection-xss-and-csrf-5h82</link>
      <guid>https://dev.to/fahadbinsiddique/protecting-applications-against-sql-injection-xss-and-csrf-5h82</guid>
      <description>&lt;p&gt;One missing security check can turn a working application into a serious security problem.&lt;/p&gt;

&lt;p&gt;The scary part?&lt;/p&gt;

&lt;p&gt;SQL Injection, XSS and CSRF usually don't require some vulnerability.&lt;/p&gt;

&lt;p&gt;They often start with something simpler:&lt;/p&gt;

&lt;p&gt;Untested input.&lt;/p&gt;

&lt;p&gt;When building backend systems it's easy to focus on whether the API works&lt;/p&gt;

&lt;p&gt;A better question is:&lt;/p&gt;

&lt;p&gt;"What happens if someone doesn't use it the way I expect?"&lt;/p&gt;

&lt;p&gt;That's where backend security becomes part of everyday development—not something to think about after deployment.&lt;/p&gt;

&lt;p&gt;Here are three vulnerabilities every backend developer should understand:&lt;/p&gt;

&lt;p&gt;🔴 SQL Injection&lt;/p&gt;

&lt;p&gt;It happens when untrusted user input gets mixed directly into SQL queries.&lt;/p&gt;

&lt;p&gt;The safer approach?&lt;/p&gt;

&lt;p&gt;Use queries or your frameworks ORM properly instead of building SQL strings from user input.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;p&gt;User input → Validate → query → Database&lt;/p&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;p&gt;User input → String concatenation → Database&lt;/p&gt;

&lt;p&gt;🟠 XSS. Cross Site Scripting&lt;/p&gt;

&lt;p&gt;If user-controlled content is rendered as HTML/JavaScript, an attacker may be able to inject malicious scripts into another users browser.&lt;/p&gt;

&lt;p&gt;That's why:&lt;/p&gt;

&lt;p&gt;✅ Output encoding matters&lt;/p&gt;

&lt;p&gt;✅ Sanitization matters when HTML is actually allowed&lt;/p&gt;

&lt;p&gt;✅ Content Security Policy can provide another layer of defense&lt;/p&gt;

&lt;p&gt;✅ Never assume user-provided content is safe&lt;/p&gt;

&lt;p&gt;🟡 CSRF. Cross Site Request Forgery&lt;/p&gt;

&lt;p&gt;This one is especially important when authentication relies on cookies.&lt;/p&gt;

&lt;p&gt;A malicious website may try to trick a users browser into sending an authenticated request to your application.&lt;/p&gt;

&lt;p&gt;That's why proper:&lt;/p&gt;

&lt;p&gt;→ CSRF tokens&lt;/p&gt;

&lt;p&gt;→ cookie settings&lt;/p&gt;

&lt;p&gt;→ Origin/Referer validation where appropriate&lt;/p&gt;

&lt;p&gt;→ Secure authentication design&lt;/p&gt;

&lt;p&gt;matter.&lt;/p&gt;

&lt;p&gt;One thing I've learned from development:&lt;/p&gt;

&lt;p&gt;Security isn't a feature you add at the end.&lt;/p&gt;

&lt;p&gt;It should influence how you design the API handle input manage authentication, store data and configure the application from the beginning.&lt;/p&gt;

&lt;p&gt;A practical security mindset I try to keep:&lt;/p&gt;

&lt;p&gt;✅ Treat every input as untrusted.&lt;/p&gt;

&lt;p&gt;✅ Prefer framework defaults instead of reinventing security mechanisms.&lt;/p&gt;

&lt;p&gt;✅ input—but don't confuse validation with output encoding or authorization.&lt;/p&gt;

&lt;p&gt;✅ Use queries/ORMs for database access.&lt;/p&gt;

&lt;p&gt;✅ Protect state-changing requests, against CSRF when cookies are involved.&lt;/p&gt;

&lt;p&gt;✅ Keep dependencies and frameworks updated.&lt;/p&gt;

&lt;p&gt;✅ Don't expose information through errors, logs or API responses.&lt;/p&gt;

&lt;p&gt;💡 The goal isn't to make an application impossible to attack.&lt;/p&gt;

&lt;p&gt;The goal is to make attacks much harder—and to design the system so that one mistake doesn't become a complete compromise.&lt;/p&gt;

&lt;p&gt;Whats one backend security mistake you've seen often?&lt;/p&gt;

&lt;h1&gt;
  
  
  BackendSecurity #CyberSecurity #WebSecurity #SoftwareDevelopment #fahadbinsiddique
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvgeaempuujh4fr7r6efi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvgeaempuujh4fr7r6efi.png" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Every course shows you the happy path: prompt &gt; response &gt; ship it &gt; congratulations, you’re an AI engineer now.</title>
      <dc:creator>Fahad Bin Siddique</dc:creator>
      <pubDate>Wed, 24 Jun 2026 16:36:24 +0000</pubDate>
      <link>https://dev.to/fahadbinsiddique/every-course-shows-you-the-happy-path-prompt-response-ship-it-congratulations-youre-an-ai-1hl7</link>
      <guid>https://dev.to/fahadbinsiddique/every-course-shows-you-the-happy-path-prompt-response-ship-it-congratulations-youre-an-ai-1hl7</guid>
      <description></description>
      <category>ai</category>
      <category>career</category>
      <category>discuss</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
