<?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: Tarun Jaswani</title>
    <description>The latest articles on DEV Community by Tarun Jaswani (@tarun_jaswani_e9a4c1020df).</description>
    <link>https://dev.to/tarun_jaswani_e9a4c1020df</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%2F4013403%2Ff3992e75-d440-4860-bec3-0147a303196e.jpg</url>
      <title>DEV Community: Tarun Jaswani</title>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tarun_jaswani_e9a4c1020df"/>
    <language>en</language>
    <item>
      <title>You Do Not Need Better Security. You Need to Know What You Are Actually Defending Against.</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 07 Aug 2026 11:44:01 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/you-do-not-need-better-security-you-need-to-know-what-you-are-actually-defending-against-27i5</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/you-do-not-need-better-security-you-need-to-know-what-you-are-actually-defending-against-27i5</guid>
      <description>&lt;p&gt;Most security advice is a pile of unranked instructions that leaves people either overwhelmed or falsely confident. Professionals do not work from lists. They work from a threat model — a short, honest answer to what you have, who would want it, and what they would realistically do. Here is how to build yours in an hour.&lt;br&gt;
Security Researcher • Penetration Tester&lt;br&gt;
Tarun Jaswani writes about technology and security for everyday people — the practical habits that keep ordinary lives safe online, explained without jargon and always from the side of the person trying to protect themselves.&lt;/p&gt;

&lt;p&gt;Ask most people what they do for security and you get a list. Strong passwords. Antivirus. Do not click strange links. Use a VPN. Cover the webcam. Every item might be reasonable in isolation, but a list is not a strategy — it has no order, no reasoning, and no way of telling you which three things actually matter for your life versus which seven are folklore. That is why people either do everything badly or do a few random things well and assume they are covered.&lt;br&gt;
&lt;a href="https://about.me/tarun_jaswani" rel="noopener noreferrer"&gt;https://about.me/tarun_jaswani&lt;/a&gt;&lt;br&gt;
Security professionals do not start with a list. They start with a threat model: a structured answer to four questions about the specific situation being defended. It is not complicated, it does not require technical knowledge, and doing it once produces a personal priority order that makes every subsequent decision easier.&lt;br&gt;
&lt;a href="https://medium.com/@rajkarar814/how-cybersecurity-can-change-the-world-dd4cd368c346" rel="noopener noreferrer"&gt;https://medium.com/@rajkarar814/how-cybersecurity-can-change-the-world-dd4cd368c346&lt;/a&gt;&lt;br&gt;
Question One: What Do You Actually Have That Is Worth Taking.&lt;br&gt;
Not "my data" in the abstract. Specifically: money and the ability to move it, accounts that control other accounts, identity documents that enable impersonation, private communications and photographs, professional access such as work systems or client data, and anything with sentimental irreplaceability like family photos with no backup.&lt;br&gt;
Write the list. Most people are surprised by how short it is and how much of it funnels through two or three accounts. That concentration is the most useful thing the exercise reveals, because it tells you exactly where effort belongs.&lt;br&gt;
Question Two: Who Would Realistically Want It.&lt;br&gt;
This is where most people get security wrong in both directions. They either imagine a targeted expert adversary, panic, and give up — or they imagine nobody cares about them and do nothing. Both are wrong for almost everyone.&lt;br&gt;
•  Opportunistic criminals running automated attacks at scale. They do not know or care who you are. They test leaked credentials, blast phishing messages, and take whatever opens. This is the overwhelming majority of what ordinary people face.&lt;br&gt;
•  Scammers using social engineering — fake delivery notices, fake bank calls, fake job offers, romance and investment fraud. Their tool is your emotional state, not your technology.&lt;br&gt;
•  People who know you. Uncomfortable but real: an ex-partner, a family member, a colleague. They have context, physical access, and answers to your security questions. For many people this is the most likely serious threat.&lt;br&gt;
•  Targeted attackers with resources. Genuinely relevant if you are a journalist, activist, executive with signing authority, or someone holding significant crypto assets. Not relevant to most people, and pretending otherwise mostly produces paralysis.&lt;br&gt;
&lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
Question Three: How Bad Is It If They Succeed.&lt;br&gt;
Rank the consequences honestly, because not all compromises are equal. Losing a streaming account is annoying. Losing your primary email is catastrophic, because it resets everything else. Losing your banking app is immediately expensive. Losing private photographs may be unrecoverable in a way money is not.&lt;br&gt;
Multiply likelihood by consequence and a priority order falls out on its own. High likelihood plus high consequence is where all your early effort goes. Low likelihood plus low consequence is where good advice goes to be safely ignored.&lt;br&gt;
Question Four: What Are You Realistically Willing to Sustain.&lt;br&gt;
A security practice you abandon in three weeks provides no protection. The correct measure of a control is not how strong it is in theory but how strong it is after twelve months of your actual behaviour. A password manager you use for everything beats a memorised scheme you abandon under pressure. Two-factor on five critical accounts that you keep enabled beats two-factor on forty accounts that you disable in frustration.&lt;br&gt;
Choose controls you will still be using next year. This single filter eliminates most of the elaborate advice that circulates online, and it is why professionals recommend boring, durable measures over clever fragile ones.&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/tarun-jaswani-a85b55401/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/tarun-jaswani-a85b55401/&lt;/a&gt;&lt;br&gt;
What the Model Produces for Almost Everyone.&lt;br&gt;
Run those four questions for a typical person with a job, a family, a bank account, and normal public exposure, and the same short priority list emerges nearly every time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Protect the primary email above everything, because it is the reset path for the rest of your life. Unique password, app-based or hardware two-factor, recovery options cleaned up.&lt;/li&gt;
&lt;li&gt; Use a password manager and stop reusing passwords. Credential stuffing — attackers trying breached passwords across other sites — is the single most common way ordinary accounts fall, and unique passwords defeat it entirely.&lt;/li&gt;
&lt;li&gt; Turn on two-factor for email, banking, payments, and your primary social accounts. Prefer an authenticator app or hardware key over SMS.&lt;/li&gt;
&lt;li&gt; Keep devices and browsers updated. Automated attacks rely overwhelmingly on known vulnerabilities that were patched months ago.&lt;/li&gt;
&lt;li&gt; Back up what is irreplaceable, with at least one copy that is not connected to your computer. This is your defence against ransomware, theft, and hardware failure simultaneously.&lt;/li&gt;
&lt;li&gt; Slow down on messages that create urgency. Almost every successful scam depends on the target acting fast. A five-minute pause and an independent verification call defeats most of them.
Notice what is not on that list: VPNs for everyday browsing, antivirus beyond what the operating system already provides, webcam covers, and elaborate encryption workflows. Those are not useless — they are simply not top-six for most threat models, and putting them first is how people spend their limited attention in the wrong place.
&lt;a href="https://github.com/tarunjaswani/CORS-Misconfiguration/tree/main" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani/CORS-Misconfiguration/tree/main&lt;/a&gt;
&lt;a href="https://github.com/tarunjaswani/CSV-Injection/tree/main" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani/CSV-Injection/tree/main&lt;/a&gt;
When Your Model Should Change.
•  You take a role with access to money, systems, or sensitive client data. Your professional access is now a target independent of your personal life.
•  You become publicly visible — journalism, activism, a public commercial profile. Targeted attention becomes plausible where it previously was not.
•  You start holding assets that are irreversible when stolen, such as significant cryptocurrency. Irreversibility raises the consequence side of every calculation.
•  A relationship ends badly, or someone with prior physical access to your devices becomes hostile. The people-who-know-you threat moves sharply up the list.
&lt;a href="https://github.com/tarunjaswani/ai-job-search" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani/ai-job-search&lt;/a&gt;
Security is not a list of instructions, it is a set of decisions about a specific life. What do I have, who would want it, how bad is it if they get it, and what will I actually keep doing. One hour with those four questions produces a personal priority order worth more than any list of a hundred tips — because it tells you what to do first, and what you can safely stop worrying about.
— Tarun Jaswani
&lt;a href="https://www.facebook.com/people/TarunJaswani/61588987721538/" rel="noopener noreferrer"&gt;https://www.facebook.com/people/TarunJaswani/61588987721538/&lt;/a&gt;
&lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;TAGS&lt;/p&gt;

&lt;h1&gt;
  
  
  Cybersecurity   #ThreatModel   #TarunJaswani   #InfoSec   #Privacy   #OnlineSafety   #RiskManagement   #DigitalSafety   #Security   #Awareness
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>Attackers Do Not Break Your Password Anymore. They Take Over Your Account Recovery.</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 07 Aug 2026 11:24:29 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/attackers-do-not-break-your-password-anymore-they-take-over-your-account-recovery-506l</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/attackers-do-not-break-your-password-anymore-they-take-over-your-account-recovery-506l</guid>
      <description>&lt;p&gt;You picked a long password, turned on two-factor, and felt secure. Meanwhile the actual attack path runs around all of it — through your recovery email, your phone number, your security questions, and a support agent who believes a convincing story. This is how accounts really get taken, and how to close the door.&lt;br&gt;
Security Researcher • Penetration Tester&lt;br&gt;
Tarun Jaswani writes about technology and security for everyday people — the practical habits that keep ordinary lives safe online, explained without jargon and always from the side of the person trying to protect themselves.&lt;/p&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%2Fiuds7wbmjj92idyrpvzf.jpg" 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%2Fiuds7wbmjj92idyrpvzf.jpg" alt=" " width="399" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Almost nobody's account gets taken by someone guessing their password. That is the movie version. The real version is quieter and far more effective: the attacker never touches your password at all. They go to the "forgot password" flow and work on the thing that sits behind it — your recovery email, your phone number, your security questions, or a support agent who can be talked into a reset. Every one of those is a door into the same house, and most people have spent years hardening the front door while leaving the others unlocked.&lt;br&gt;
&lt;a href="https://about.me/tarun_jaswani" rel="noopener noreferrer"&gt;https://about.me/tarun_jaswani&lt;/a&gt;&lt;br&gt;
This matters because your account security is not the strength of your password. It is the strength of the weakest path that leads to a password reset. If your bank login is protected by a twenty-character passphrase but the reset link goes to an old email address you have not opened since 2019, your bank login is protected by that old email address.&lt;br&gt;
&lt;a href="https://medium.com/@rajkarar814/how-cybersecurity-can-change-the-world-dd4cd368c346" rel="noopener noreferrer"&gt;https://medium.com/@rajkarar814/how-cybersecurity-can-change-the-world-dd4cd368c346&lt;/a&gt;&lt;br&gt;
The Recovery Chain — Draw It Before an Attacker Does.&lt;br&gt;
Every important account has a chain behind it. Your bank sends resets to your primary email. Your primary email sends resets to a recovery email and a phone number. That recovery email may itself have a recovery option pointing somewhere else. Follow that chain far enough and you almost always arrive at one or two accounts that everything else depends on.&lt;br&gt;
Those one or two accounts are your real crown jewels, and most people have never identified them. Take twenty minutes and actually map it: for each important account, write down where a password reset would be sent. Then do the same for those destinations. The account that appears most often at the end of the chains is the one that deserves the strongest protection you are capable of applying.&lt;br&gt;
The single sentence version&lt;br&gt;
Your account is only as secure as the weakest account that can reset it. Harden the recovery chain, not just the login.&lt;br&gt;
Attack Path One: The Abandoned Recovery Email.&lt;br&gt;
Old email addresses are a common weak point. A provider may reclaim a long-dormant address, an old work or college address gets deprovisioned, or the account simply sits unused with a password from a decade ago that has since appeared in a breach dump. If any of those addresses is still listed as a recovery option on a current account, it is a live path in.&lt;br&gt;
Go through the recovery settings of your important accounts and remove every address you no longer actively control and monitor. Replace them with one you check regularly and have secured properly. An unmonitored recovery address is worse than none, because it lets a reset happen without you ever seeing the notification.&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/tarun-jaswani-a85b55401/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/tarun-jaswani-a85b55401/&lt;/a&gt;&lt;br&gt;
Attack Path Two: Your Phone Number.&lt;br&gt;
SMS-based recovery is convenient and structurally weak. A SIM swap — where an attacker persuades or bribes a mobile operator into porting your number onto their SIM — hands them every code sent to that number. It is not exotic; it is a known and repeatedly documented technique, and it is particularly damaging because the phone number often sits behind email, banking, and payment apps simultaneously.&lt;br&gt;
•  Move away from SMS codes wherever the service offers an authenticator app or a hardware security key. App-based codes are generated on your device and are not intercepted by taking over your number.&lt;br&gt;
•  Ask your mobile operator what protections they offer against unauthorised porting — many support a port-out PIN, a lock, or an in-person verification requirement. Enable whatever exists.&lt;br&gt;
•  Remove your phone number as a recovery option on accounts where you have a stronger method available. Keeping it "just in case" preserves the weak path you were trying to eliminate.&lt;br&gt;
•  Treat sudden loss of mobile signal as a possible signal, not just an outage. If your phone loses service unexpectedly and stays down, check with your operator rather than waiting it out.&lt;br&gt;
&lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
Attack Path Three: Security Questions Are Public Records.&lt;br&gt;
Mother's maiden name. First school. City you were born in. Name of your first pet. These were designed in an era before people posted their lives publicly. Today, most security question answers are discoverable from social media, public records, or a friendly conversation.&lt;br&gt;
The fix is simple and slightly counterintuitive: do not answer security questions truthfully. Treat each one as a second password. Generate a random string, store it in your password manager alongside the login, and use that as the answer. There is no rule requiring your first school to be a real school. An attacker who researches your life perfectly still cannot guess a random string.&lt;br&gt;
Attack Path Four: The Support Agent.&lt;br&gt;
The hardest path to defend is the human one. An attacker calls or messages support, presents a plausible story and a handful of personal details gathered from breaches and social media, and asks for help getting back into "their" account. Support exists to help people who are genuinely locked out, which is exactly the sympathy an attacker exploits.&lt;br&gt;
You cannot control the provider's training, but you can reduce your exposure. Enable any advanced protection programme the provider offers — several major platforms have one, and they typically restrict what support can do without a hardware key. Reduce the personal details that are publicly discoverable about you. And where a provider allows you to set a support PIN or passphrase required for account changes, set it.&lt;br&gt;
&lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;&lt;br&gt;
What to Actually Do This Week.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Map the recovery chain for your primary email, your bank, and your main payment app. Identify the one account everything ultimately depends on.&lt;/li&gt;
&lt;li&gt; Secure that account with the strongest method available: a hardware security key if supported, an authenticator app if not, plus a unique password stored in a password manager.&lt;/li&gt;
&lt;li&gt; Remove every stale recovery email and every unnecessary recovery phone number from your important accounts.&lt;/li&gt;
&lt;li&gt; Replace SMS codes with app-based or hardware-based codes anywhere the option exists.&lt;/li&gt;
&lt;li&gt; Overwrite all security question answers with random strings saved in your password manager.&lt;/li&gt;
&lt;li&gt; Turn on login and recovery alerts so an attempted reset generates a notification you will actually see.&lt;/li&gt;
&lt;li&gt; Enrol in the provider's advanced protection programme if one exists for your most critical account.
&lt;a href="https://github.com/tarunjaswani/agent-scripts" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani/agent-scripts&lt;/a&gt;
A strong password protects the front door. Account recovery is the side gate, the back door, and the spare key under the mat, and it is where accounts are actually lost. Map the chain, find the account everything depends on, and protect that one as if everything depends on it — because it does.
— Tarun Jaswani
&lt;a href="https://www.facebook.com/people/TarunJaswani/61588987721538/" rel="noopener noreferrer"&gt;https://www.facebook.com/people/TarunJaswani/61588987721538/&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;TAGS&lt;/p&gt;

&lt;h1&gt;
  
  
  Cybersecurity   #AccountSecurity   #TarunJaswani   #2FA   #SIMSwap   #Phishing   #OnlineSafety   #InfoSec   #Privacy   #DigitalSafety
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Secure Coding Starts Before the First Line of Code</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Sat, 01 Aug 2026 12:45:21 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/secure-coding-starts-before-the-first-line-of-code-4gbl</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/secure-coding-starts-before-the-first-line-of-code-4gbl</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Many security vulnerabilities aren't introduced by advanced attackers—they're unintentionally created during software development. Secure coding is not about fixing bugs after deployment; it's about preventing vulnerabilities from being introduced in the first place.&lt;/p&gt;

&lt;p&gt;Security should be integrated into every stage of the software development lifecycle.&lt;/p&gt;

&lt;p&gt;Common Software Vulnerabilities&lt;/p&gt;

&lt;p&gt;Several classes of vulnerabilities appear repeatedly across applications:&lt;/p&gt;

&lt;p&gt;SQL Injection&lt;br&gt;
Cross-Site Scripting (XSS)&lt;br&gt;
Cross-Site Request Forgery (CSRF)&lt;br&gt;
Broken Access Control&lt;br&gt;
Server-Side Request Forgery (SSRF)&lt;br&gt;
Insecure Deserialization&lt;br&gt;
Command Injection&lt;br&gt;
Path Traversal&lt;/p&gt;

&lt;p&gt;Most of these stem from insufficient input validation, improper authorization, or unsafe handling of user data.&lt;/p&gt;

&lt;p&gt;Validate Every Input&lt;/p&gt;

&lt;p&gt;Never assume incoming data is trustworthy.&lt;/p&gt;

&lt;p&gt;User input should always be:&lt;/p&gt;

&lt;p&gt;Validated&lt;br&gt;
Sanitized where appropriate&lt;br&gt;
Restricted using allowlists&lt;br&gt;
Checked for expected formats and lengths&lt;/p&gt;

&lt;p&gt;Input validation significantly reduces the likelihood of injection attacks.&lt;/p&gt;

&lt;p&gt;Principle of Least Privilege&lt;/p&gt;

&lt;p&gt;Applications should operate with only the permissions they truly require.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;p&gt;Database accounts with minimal privileges&lt;br&gt;
Restricted filesystem access&lt;br&gt;
Limited API permissions&lt;br&gt;
Isolated service accounts&lt;/p&gt;

&lt;p&gt;Reducing privileges minimizes the impact if an application is compromised.&lt;/p&gt;

&lt;p&gt;Secure Authentication&lt;/p&gt;

&lt;p&gt;Strong authentication involves more than simply verifying usernames and passwords.&lt;/p&gt;

&lt;p&gt;Modern applications should support:&lt;/p&gt;

&lt;p&gt;Multi-factor authentication&lt;br&gt;
Secure password hashing&lt;br&gt;
Rate limiting&lt;br&gt;
Account lockout policies&lt;br&gt;
Secure session management&lt;br&gt;
Token expiration and rotation&lt;/p&gt;

&lt;p&gt;Proper authentication protects both users and critical business data.&lt;/p&gt;

&lt;p&gt;Dependency Management&lt;/p&gt;

&lt;p&gt;Modern software relies heavily on third-party libraries.&lt;/p&gt;

&lt;p&gt;Developers should:&lt;/p&gt;

&lt;p&gt;Regularly update dependencies&lt;br&gt;
Remove unused packages&lt;br&gt;
Monitor security advisories&lt;br&gt;
Perform Software Composition Analysis (SCA)&lt;/p&gt;

&lt;p&gt;Outdated libraries frequently become attack vectors.&lt;/p&gt;

&lt;p&gt;Logging and Monitoring&lt;/p&gt;

&lt;p&gt;Security incidents often go unnoticed because applications fail to generate meaningful logs.&lt;/p&gt;

&lt;p&gt;Important events to log include:&lt;/p&gt;

&lt;p&gt;Authentication attempts&lt;br&gt;
Privilege changes&lt;br&gt;
Administrative actions&lt;br&gt;
API failures&lt;br&gt;
Unexpected exceptions&lt;br&gt;
Security policy violations&lt;/p&gt;

&lt;p&gt;Logs should be centralized, protected from tampering, and continuously monitored.&lt;/p&gt;

&lt;p&gt;Security Testing Throughout Development&lt;/p&gt;

&lt;p&gt;Security testing should be continuous rather than a final deployment step.&lt;/p&gt;

&lt;p&gt;Effective practices include:&lt;/p&gt;

&lt;p&gt;Static Application Security Testing (SAST)&lt;br&gt;
Dynamic Application Security Testing (DAST)&lt;br&gt;
Dependency scanning&lt;br&gt;
Secret detection&lt;br&gt;
Code reviews&lt;br&gt;
Penetration testing&lt;/p&gt;

&lt;p&gt;Automated scanning combined with manual review provides broader coverage.&lt;/p&gt;

&lt;p&gt;Foster a Security-First Culture&lt;/p&gt;

&lt;p&gt;Secure coding is not solely the responsibility of security teams.&lt;/p&gt;

&lt;p&gt;Developers, testers, architects, and operations teams should collaborate throughout the development lifecycle. Organizations that embrace DevSecOps integrate security into development workflows without slowing innovation.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Secure software doesn't happen by accident. It results from thoughtful design, disciplined development practices, continuous testing, and ongoing education. By incorporating security from the beginning, organizations reduce technical debt, lower remediation costs, and build applications that users can trust.&lt;/p&gt;

&lt;p&gt;Reference:&lt;br&gt;
&lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;/p&gt;

</description>
      <category>coding</category>
      <category>cybersecurity</category>
      <category>security</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Why Identity Is the New Security Perimeter</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Sat, 01 Aug 2026 12:27:50 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/why-identity-is-the-new-security-perimeter-29c6</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/why-identity-is-the-new-security-perimeter-29c6</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;For years, organizations built their security strategies around protecting the network perimeter. Firewalls, VPNs, and intrusion prevention systems formed the first line of defense. However, as cloud computing, remote work, and Software-as-a-Service (SaaS) platforms became the norm, the traditional perimeter largely disappeared. Today, identity has become the primary target for attackers—and the primary control point for defenders.&lt;/p&gt;

&lt;p&gt;Why Attackers Target Identity&lt;/p&gt;

&lt;p&gt;Instead of exploiting sophisticated vulnerabilities, many attackers now focus on stealing credentials or hijacking authenticated sessions. Once inside a trusted account, they often blend in with legitimate users, making detection much more difficult.&lt;/p&gt;

&lt;p&gt;Common techniques include:&lt;/p&gt;

&lt;p&gt;Phishing attacks&lt;br&gt;
Credential stuffing&lt;br&gt;
Password spraying&lt;br&gt;
Session token theft&lt;br&gt;
MFA fatigue attacks&lt;br&gt;
OAuth abuse&lt;/p&gt;

&lt;p&gt;A compromised identity often grants attackers immediate access to sensitive resources without needing to exploit additional vulnerabilities.&lt;/p&gt;

&lt;p&gt;Zero Trust Begins with Identity&lt;/p&gt;

&lt;p&gt;The Zero Trust model operates on a simple principle:&lt;/p&gt;

&lt;p&gt;Never trust. Always verify.&lt;/p&gt;

&lt;p&gt;Rather than assuming users inside a network are trustworthy, every request is continuously evaluated based on multiple signals:&lt;/p&gt;

&lt;p&gt;User identity&lt;br&gt;
Device health&lt;br&gt;
Location&lt;br&gt;
Time of access&lt;br&gt;
Risk score&lt;br&gt;
Behavioral patterns&lt;/p&gt;

&lt;p&gt;This approach significantly reduces the impact of stolen credentials.&lt;/p&gt;

&lt;p&gt;Building Strong Identity Security&lt;/p&gt;

&lt;p&gt;Organizations should adopt several best practices:&lt;/p&gt;

&lt;p&gt;Implement Multi-Factor Authentication (MFA)&lt;/p&gt;

&lt;p&gt;While MFA isn't foolproof, it remains one of the most effective defenses against credential theft.&lt;/p&gt;

&lt;p&gt;Use Strong Identity Providers&lt;/p&gt;

&lt;p&gt;Centralized authentication through trusted identity providers improves visibility and simplifies access management.&lt;/p&gt;

&lt;p&gt;Apply Least Privilege&lt;/p&gt;

&lt;p&gt;Users should only have access to resources necessary for their responsibilities. Excessive permissions dramatically increase the damage a compromised account can cause.&lt;/p&gt;

&lt;p&gt;Monitor Authentication Logs&lt;/p&gt;

&lt;p&gt;Authentication events often reveal the earliest indicators of compromise.&lt;/p&gt;

&lt;p&gt;Watch for:&lt;/p&gt;

&lt;p&gt;Impossible travel&lt;br&gt;
Multiple failed logins&lt;br&gt;
Unusual login times&lt;br&gt;
New device registrations&lt;br&gt;
Sudden privilege escalation&lt;br&gt;
Passwords Alone Are No Longer Enough&lt;/p&gt;

&lt;p&gt;Passwords continue to be reused across services, exposed in data breaches, and targeted through phishing campaigns. Modern organizations are increasingly adopting passwordless authentication using:&lt;/p&gt;

&lt;p&gt;Passkeys&lt;br&gt;
Hardware security keys&lt;br&gt;
Biometric authentication&lt;br&gt;
FIDO2 standards&lt;/p&gt;

&lt;p&gt;These technologies reduce phishing risks while improving user experience.&lt;/p&gt;

&lt;p&gt;The Human Factor&lt;/p&gt;

&lt;p&gt;Technology alone cannot prevent identity attacks.&lt;/p&gt;

&lt;p&gt;Regular security awareness training should teach users how to recognize:&lt;/p&gt;

&lt;p&gt;Fake login pages&lt;br&gt;
MFA push fatigue&lt;br&gt;
Business email compromise&lt;br&gt;
Social engineering attempts&lt;/p&gt;

&lt;p&gt;Creating a security-conscious culture is just as important as deploying new tools.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Identity has become the new perimeter. Organizations that invest in strong authentication, continuous verification, least privilege, and proactive monitoring will be significantly better prepared for today's evolving threat landscape. As attackers increasingly target users rather than infrastructure, protecting digital identities is no longer optional—it's fundamental to modern cybersecurity.&lt;/p&gt;

&lt;p&gt;For Reference:&lt;br&gt;
&lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Lessons Every Cybersecurity Engineer Learns from Real-World Web Applications</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 31 Jul 2026 10:46:49 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/lessons-every-cybersecurity-engineer-learns-from-real-world-web-applications-4pn1</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/lessons-every-cybersecurity-engineer-learns-from-real-world-web-applications-4pn1</guid>
      <description>&lt;p&gt;Every web application tells a story.&lt;/p&gt;

&lt;p&gt;Some demonstrate excellent engineering.&lt;/p&gt;

&lt;p&gt;Others unintentionally expose valuable lessons through their vulnerabilities.&lt;/p&gt;

&lt;p&gt;Working with modern web applications reinforces one important truth: security is rarely broken by a single catastrophic mistake. More often, multiple small weaknesses combine to create significant risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small Issues Become Big Problems
&lt;/h2&gt;

&lt;p&gt;Consider a simple sequence:&lt;/p&gt;

&lt;p&gt;A user uploads a file.&lt;/p&gt;

&lt;p&gt;The application performs limited validation.&lt;/p&gt;

&lt;p&gt;An administrator later views that file.&lt;/p&gt;

&lt;p&gt;The browser executes unexpected content.&lt;/p&gt;

&lt;p&gt;A seemingly harmless upload feature becomes a security issue because several assumptions failed.&lt;/p&gt;

&lt;p&gt;Modern attacks often chain multiple weaknesses together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration Is Just as Important as Code
&lt;/h2&gt;

&lt;p&gt;Applications frequently inherit risk from their environments.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debug mode enabled in production&lt;/li&gt;
&lt;li&gt;Public cloud storage buckets&lt;/li&gt;
&lt;li&gt;Default credentials&lt;/li&gt;
&lt;li&gt;Misconfigured CORS policies&lt;/li&gt;
&lt;li&gt;Missing HTTP security headers&lt;/li&gt;
&lt;li&gt;Exposed administrative interfaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Secure deployments require attention beyond application code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dependencies Deserve Regular Attention
&lt;/h2&gt;

&lt;p&gt;Most modern applications depend on hundreds of open-source packages.&lt;/p&gt;

&lt;p&gt;These libraries accelerate development but also introduce supply-chain risk.&lt;/p&gt;

&lt;p&gt;Good dependency management includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regular updates&lt;/li&gt;
&lt;li&gt;Vulnerability monitoring&lt;/li&gt;
&lt;li&gt;Version pinning&lt;/li&gt;
&lt;li&gt;Reviewing unnecessary packages&lt;/li&gt;
&lt;li&gt;Removing abandoned libraries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A secure application depends on a secure ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human Factors Remain Critical
&lt;/h2&gt;

&lt;p&gt;Technology alone cannot eliminate security incidents.&lt;/p&gt;

&lt;p&gt;Phishing attacks, weak passwords, accidental data exposure, and social engineering continue to succeed because people remain an essential part of every system.&lt;/p&gt;

&lt;p&gt;Security awareness complements technical defenses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defense in Depth
&lt;/h2&gt;

&lt;p&gt;No single control provides complete protection.&lt;/p&gt;

&lt;p&gt;Effective security layers include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Authorization&lt;/li&gt;
&lt;li&gt;Encryption&lt;/li&gt;
&lt;li&gt;Input validation&lt;/li&gt;
&lt;li&gt;Monitoring&lt;/li&gt;
&lt;li&gt;Logging&lt;/li&gt;
&lt;li&gt;Rate limiting&lt;/li&gt;
&lt;li&gt;Web Application Firewalls&lt;/li&gt;
&lt;li&gt;Secure backups&lt;/li&gt;
&lt;li&gt;Incident response planning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When one layer fails, others continue protecting the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security Is an Ongoing Journey
&lt;/h2&gt;

&lt;p&gt;There is no perfectly secure application.&lt;/p&gt;

&lt;p&gt;New vulnerabilities emerge.&lt;/p&gt;

&lt;p&gt;Frameworks evolve.&lt;/p&gt;

&lt;p&gt;Browsers change.&lt;/p&gt;

&lt;p&gt;Attack techniques improve.&lt;/p&gt;

&lt;p&gt;Organizations that embrace continuous improvement respond more effectively than those seeking one-time perfection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Web2 security continues to influence nearly every digital service people use daily.&lt;/p&gt;

&lt;p&gt;Strong engineering practices, continuous learning, and proactive security thinking remain the foundation of resilient software.&lt;/p&gt;

&lt;p&gt;Cybersecurity is not simply about finding vulnerabilities—it is about understanding systems, reducing risk, and helping build technology that users can trust with confidence.&lt;/p&gt;

&lt;p&gt;Reference and Connect:&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/tarun-jaswani-a85b55401/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/tarun-jaswani-a85b55401/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.facebook.com/people/TarunJaswani/61588987721538/" rel="noopener noreferrer"&gt;https://www.facebook.com/people/TarunJaswani/61588987721538/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://about.me/tarun_jaswani" rel="noopener noreferrer"&gt;https://about.me/tarun_jaswani&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hashnode.com/@tarunjaswani121" rel="noopener noreferrer"&gt;https://hashnode.com/@tarunjaswani121&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Secure Coding Is More Than Fixing Vulnerabilities</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 31 Jul 2026 10:45:27 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/secure-coding-is-more-than-fixing-vulnerabilities-32jl</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/secure-coding-is-more-than-fixing-vulnerabilities-32jl</guid>
      <description>&lt;p&gt;Secure Coding Is More Than Fixing Vulnerabilities&lt;/p&gt;

&lt;p&gt;Many developers think security begins after coding ends.&lt;/p&gt;

&lt;p&gt;In reality, security begins with the first design decision.&lt;/p&gt;

&lt;p&gt;Secure coding is not about adding defensive checks after an application is finished. It is about building software that naturally resists attacks throughout its lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Think Like an Attacker
&lt;/h2&gt;

&lt;p&gt;One of the most valuable habits any developer can build is asking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What assumptions am I making?&lt;/li&gt;
&lt;li&gt;Can this input be manipulated?&lt;/li&gt;
&lt;li&gt;What happens if authentication fails?&lt;/li&gt;
&lt;li&gt;Can users access data they shouldn't?&lt;/li&gt;
&lt;li&gt;What if this API is abused?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thinking from an attacker's perspective often reveals weaknesses before they become production incidents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Input Validation Matters
&lt;/h2&gt;

&lt;p&gt;Nearly every application accepts user input.&lt;/p&gt;

&lt;p&gt;Search boxes.&lt;/p&gt;

&lt;p&gt;Login forms.&lt;/p&gt;

&lt;p&gt;Comments.&lt;/p&gt;

&lt;p&gt;Profile updates.&lt;/p&gt;

&lt;p&gt;File uploads.&lt;/p&gt;

&lt;p&gt;APIs.&lt;/p&gt;

&lt;p&gt;Every input represents an opportunity for attackers to manipulate application behavior.&lt;/p&gt;

&lt;p&gt;Never trust user-controlled data.&lt;/p&gt;

&lt;p&gt;Validate it.&lt;/p&gt;

&lt;p&gt;Sanitize it.&lt;/p&gt;

&lt;p&gt;Encode it when necessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Principle of Least Privilege
&lt;/h2&gt;

&lt;p&gt;Applications should grant only the permissions required for each operation.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users should access only their own resources.&lt;/li&gt;
&lt;li&gt;Administrators should perform privileged operations only when necessary.&lt;/li&gt;
&lt;li&gt;Services should use minimally privileged accounts.&lt;/li&gt;
&lt;li&gt;Databases should restrict unnecessary permissions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reducing privileges reduces risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logging Is a Security Feature
&lt;/h2&gt;

&lt;p&gt;Good logging helps organizations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detect attacks&lt;/li&gt;
&lt;li&gt;Investigate incidents&lt;/li&gt;
&lt;li&gt;Understand abnormal behavior&lt;/li&gt;
&lt;li&gt;Improve defensive capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, logs should never expose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Passwords&lt;/li&gt;
&lt;li&gt;Authentication tokens&lt;/li&gt;
&lt;li&gt;Credit card information&lt;/li&gt;
&lt;li&gt;API secrets&lt;/li&gt;
&lt;li&gt;Personally identifiable information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful logging balances visibility with privacy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security Reviews Improve Quality
&lt;/h2&gt;

&lt;p&gt;Code reviews should evaluate more than functionality.&lt;/p&gt;

&lt;p&gt;Security reviews examine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input validation&lt;/li&gt;
&lt;li&gt;Authorization&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Error handling&lt;/li&gt;
&lt;li&gt;Secret management&lt;/li&gt;
&lt;li&gt;Dependency usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security-focused reviews often improve overall software quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Continuous Learning
&lt;/h2&gt;

&lt;p&gt;Threats evolve every year.&lt;/p&gt;

&lt;p&gt;Developers should regularly study:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OWASP Top 10&lt;/li&gt;
&lt;li&gt;Secure design principles&lt;/li&gt;
&lt;li&gt;Common attack techniques&lt;/li&gt;
&lt;li&gt;Modern authentication methods&lt;/li&gt;
&lt;li&gt;Cloud security practices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learning security is an ongoing process rather than a one-time milestone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Secure coding is not the responsibility of security teams alone.&lt;/p&gt;

&lt;p&gt;Every developer influences the security posture of an application.&lt;/p&gt;

&lt;p&gt;Writing secure code today prevents incidents tomorrow, protects users, and strengthens trust in the software we build.&lt;/p&gt;

&lt;p&gt;Reference and Connect:&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/tarun-jaswani-a85b55401/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/tarun-jaswani-a85b55401/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.facebook.com/people/TarunJaswani/61588987721538/" rel="noopener noreferrer"&gt;https://www.facebook.com/people/TarunJaswani/61588987721538/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://about.me/tarun_jaswani" rel="noopener noreferrer"&gt;https://about.me/tarun_jaswani&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hashnode.com/@tarunjaswani121" rel="noopener noreferrer"&gt;https://hashnode.com/@tarunjaswani121&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why Web2 Security Still Matters in an AI-Driven World</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 31 Jul 2026 10:44:20 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/why-web2-security-still-matters-in-an-ai-driven-world-16ii</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/why-web2-security-still-matters-in-an-ai-driven-world-16ii</guid>
      <description>&lt;p&gt;Artificial intelligence, blockchain, and Web3 have captured much of the technology spotlight in recent years. Yet behind almost every modern application lies a Web2 infrastructure that continues to power authentication systems, APIs, cloud platforms, enterprise software, and millions of websites.&lt;/p&gt;

&lt;p&gt;While new technologies evolve rapidly, attackers continue to exploit the same Web2 weaknesses that have existed for years. Organizations lose millions of dollars annually because of vulnerabilities such as SQL injection, cross-site scripting (XSS), insecure authentication, exposed cloud storage, and broken access controls.&lt;/p&gt;

&lt;p&gt;The reality is simple: Web2 remains the foundation of the internet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Growing Attack Surface
&lt;/h2&gt;

&lt;p&gt;Modern applications are no longer monolithic. A single platform may include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend applications&lt;/li&gt;
&lt;li&gt;Backend APIs&lt;/li&gt;
&lt;li&gt;Mobile applications&lt;/li&gt;
&lt;li&gt;Cloud infrastructure&lt;/li&gt;
&lt;li&gt;Third-party integrations&lt;/li&gt;
&lt;li&gt;Payment gateways&lt;/li&gt;
&lt;li&gt;Authentication providers&lt;/li&gt;
&lt;li&gt;CDN services&lt;/li&gt;
&lt;li&gt;CI/CD pipelines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every additional component introduces another potential attack vector.&lt;/p&gt;

&lt;p&gt;Security is no longer about protecting a single web server. It is about securing an entire ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication Is Still the Weakest Link
&lt;/h2&gt;

&lt;p&gt;Many successful attacks begin with compromised credentials rather than sophisticated exploits.&lt;/p&gt;

&lt;p&gt;Common authentication weaknesses include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Weak passwords&lt;/li&gt;
&lt;li&gt;Password reuse&lt;/li&gt;
&lt;li&gt;Missing MFA&lt;/li&gt;
&lt;li&gt;Session fixation&lt;/li&gt;
&lt;li&gt;Session hijacking&lt;/li&gt;
&lt;li&gt;Poor JWT implementation&lt;/li&gt;
&lt;li&gt;Broken password reset flows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A secure authentication system must balance usability with strong protection.&lt;/p&gt;

&lt;h2&gt;
  
  
  APIs Have Become Prime Targets
&lt;/h2&gt;

&lt;p&gt;Modern applications rely heavily on REST and GraphQL APIs.&lt;/p&gt;

&lt;p&gt;Unfortunately, many organizations expose APIs that suffer from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Broken Object Level Authorization (BOLA)&lt;/li&gt;
&lt;li&gt;Excessive data exposure&lt;/li&gt;
&lt;li&gt;Missing rate limiting&lt;/li&gt;
&lt;li&gt;Improper input validation&lt;/li&gt;
&lt;li&gt;Weak authorization logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;API security deserves the same attention as frontend security.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security Must Be Continuous
&lt;/h2&gt;

&lt;p&gt;Many organizations perform security assessments only before deployment.&lt;/p&gt;

&lt;p&gt;That approach is outdated.&lt;/p&gt;

&lt;p&gt;Continuous security includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Static analysis&lt;/li&gt;
&lt;li&gt;Dynamic testing&lt;/li&gt;
&lt;li&gt;Dependency scanning&lt;/li&gt;
&lt;li&gt;Infrastructure monitoring&lt;/li&gt;
&lt;li&gt;Log analysis&lt;/li&gt;
&lt;li&gt;Vulnerability management&lt;/li&gt;
&lt;li&gt;Regular penetration testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security should evolve alongside the application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security Is Everyone's Responsibility
&lt;/h2&gt;

&lt;p&gt;Developers, DevOps engineers, product managers, QA teams, and security professionals all contribute to secure software.&lt;/p&gt;

&lt;p&gt;The earlier security becomes part of development, the lower the cost of fixing vulnerabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Web2 is not disappearing anytime soon.&lt;/p&gt;

&lt;p&gt;Banks, healthcare providers, governments, SaaS companies, e-commerce platforms, and social media services continue to depend on Web2 technologies every day.&lt;/p&gt;

&lt;p&gt;Building secure Web2 applications remains one of the most valuable engineering skills. Organizations that invest in secure coding, continuous testing, and proactive security practices will be far better prepared for the evolving threat landscape.&lt;/p&gt;

&lt;p&gt;Reference and Connect:&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/tarun-jaswani-a85b55401/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/tarun-jaswani-a85b55401/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.facebook.com/people/TarunJaswani/61588987721538/" rel="noopener noreferrer"&gt;https://www.facebook.com/people/TarunJaswani/61588987721538/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://about.me/tarun_jaswani" rel="noopener noreferrer"&gt;https://about.me/tarun_jaswani&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hashnode.com/@tarunjaswani121" rel="noopener noreferrer"&gt;https://hashnode.com/@tarunjaswani121&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>security</category>
    </item>
    <item>
      <title>Your 'Export to CSV' Button Is a Security Hole. CSV Injection Explained for Developers Who DiDn't Know This Existed.</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 24 Jul 2026 14:12:54 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/your-export-to-csv-button-is-a-security-hole-csv-injection-explained-for-developers-who-didnt-45p</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/your-export-to-csv-button-is-a-security-hole-csv-injection-explained-for-developers-who-didnt-45p</guid>
      <description>&lt;p&gt;You built an application that accepts user input — names, comments, form responses, whatever. Somewhere, there's an 'Export to CSV' or 'Download as Excel' button that lets an admin or user pull that data into a spreadsheet. Perfectly normal feature, built by thousands of apps. And if you're not sanitising that user input before it hits the export, you've built a weapon aimed at whoever opens the file.&lt;br&gt;
▸ &lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;&lt;br&gt;
CSV injection is an attack where a malicious user enters a crafted string into a data field — something that looks harmless in your application's UI, but becomes a live formula when opened in Excel or Google Sheets. The spreadsheet application executes it as code, not data. And the victim isn't your server; it's the person who clicked 'Export' and opened the file, usually an admin or internal team member.&lt;br&gt;
▸ &lt;a href="https://github.com/tarunjaswani/CSV-Injection/tree/main" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani/CSV-Injection/tree/main&lt;/a&gt;&lt;br&gt;
How It Actually Works&lt;br&gt;
Spreadsheet applications like Excel and Google Sheets treat cell contents that begin with certain characters as formulas to execute. The dangerous characters are: = (equals), + (plus), - (minus), @ (at), and sometimes tab and carriage return. If a user enters a string beginning with one of these into a field your application stores and later exports to CSV, the spreadsheet application interprets it as a formula — not as the text string you intended it to be.&lt;br&gt;
The classic demonstration: a user enters =cmd|'/C calc'!A1 as their 'name' in a form. Your app stores it as text. An admin exports the data to CSV and opens it in Excel. Excel sees the = at the start, interprets the rest as a DDE (Dynamic Data Exchange) command, and — if the user clicks through the warnings — executes a system command on the admin's machine.&lt;br&gt;
More practically, the same mechanism can be used to exfiltrate data from the spreadsheet itself, make web requests to attacker-controlled servers (leaking information about who opened the file and from where), or trigger actions the opener didn't intend.&lt;br&gt;
▸ &lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
Why Developers Miss It&lt;br&gt;
•  It doesn't attack the server. Traditional security thinking focuses on protecting the server — SQL injection, XSS, authentication bypass. CSV injection bypasses the server entirely; the attack surface is the exported file and the software that opens it.&lt;br&gt;
•  The input looks harmless in the application. A string starting with '=' displays fine in a web UI, in a database, in an API response. It only becomes dangerous when it lands in a spreadsheet context — a context the developer wasn't thinking about when they built the input handler.&lt;br&gt;
•  It's not in the OWASP top 10 (as its own category). It's a form of injection, but it doesn't get the headline attention that SQLi or XSS do, so most security training skips it entirely.&lt;br&gt;
How to Fix It&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Sanitise on output, not just on input. When writing data to a CSV export, prepend a single quote (') or a tab character before any cell value that begins with =, +, -, @, or tab. The single quote tells Excel to treat the cell as text, not a formula. This is the most reliable fix.&lt;/li&gt;
&lt;li&gt; Wrap values in double quotes and escape existing double quotes. Proper CSV quoting prevents some interpretation, though it alone doesn't stop all spreadsheet formula execution.&lt;/li&gt;
&lt;li&gt; Consider the export format. Exporting as .xlsx with a library that explicitly sets cell types to 'text' is safer than raw CSV, because you control how the spreadsheet interprets each cell.&lt;/li&gt;
&lt;li&gt; Never assume user input is safe for any context you haven't tested. Your input validation probably checks for SQL injection and XSS. It probably doesn't check for spreadsheet formula injection. Add it.&lt;/li&gt;
&lt;li&gt; Warn users about opening exported files from untrusted data sources. If your export contains user-supplied data from external or untrusted sources, a warning in the export or in the documentation is a defence-in-depth measure.
▸ &lt;a href="https://medium.com/@rajkarar814/how-cybersecurity-can-change-the-world-dd4cd368c346" rel="noopener noreferrer"&gt;https://medium.com/@rajkarar814/how-cybersecurity-can-change-the-world-dd4cd368c346&lt;/a&gt;
The Broader Point for Developers
CSV injection is a specific example of a general principle: data is only safe in the context you validated it for. You validated user input for your web UI (hopefully). You validated it for your database queries (hopefully). But you didn't validate it for the spreadsheet that an admin will open after clicking 'Export' — because you weren't thinking about spreadsheets when you wrote the input handler.
Every time data crosses a context boundary — from web to database, from database to CSV, from CSV to spreadsheet — the question 'is this safe in the new context?' needs to be asked again. The bug isn't in the CSV. It's in the assumption that safe-in-one-context means safe-in-all-contexts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your 'Export to CSV' button takes user input your app treated as text and hands it to a spreadsheet that treats it as code. The fix is a few lines of output sanitisation. The lesson is bigger: data that's safe in one context can be dangerous in the next, and the boundary between 'stored in a database' and 'opened in Excel' is a boundary most developers never think to guard.&lt;br&gt;
— Tarun Jaswani&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Your CORS Configuration Is Probably Broken. Here's What Attackers See When It Is.</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 24 Jul 2026 14:07:35 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/your-corsconfiguration-isprobably-brokenheres-whatattackers-seewhen-it-is-1944</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/your-corsconfiguration-isprobably-brokenheres-whatattackers-seewhen-it-is-1944</guid>
      <description>&lt;p&gt;&lt;a href="https://outpost24.com/wp-content/uploads/2024/09/Figure-24.png" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;br&gt;
If you've built anything with a frontend that talks to a backend API, you've met CORS. And if you're like most developers, you met it as an error in the browser console that blocked your own legitimate request, and you fixed it by making the policy as permissive as possible until the error went away. That 'fix' may have opened your API to any website on the internet, and you'd never know unless someone tested for it.&lt;br&gt;
▸ &lt;a href="https://github.com/tarunjaswani" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani&lt;/a&gt;&lt;br&gt;
Cross-Origin Resource Sharing is the browser mechanism that controls which websites can make requests to your API. When it's configured correctly, it's a powerful boundary. When it's misconfigured — which it almost always is, because the error messages push developers toward permissiveness rather than precision — it becomes one of the most common, most exploitable web security weaknesses. This article shows you both sides: the developer's mistake and the attacker's opportunity.&lt;br&gt;
▸ &lt;a href="https://github.com/tarunjaswani/CORS-Misconfiguration/tree/main" rel="noopener noreferrer"&gt;https://github.com/tarunjaswani/CORS-Misconfiguration/tree/main&lt;/a&gt;&lt;br&gt;
What CORS Actually Does (in One Paragraph)&lt;br&gt;
When a browser on site A makes a request to an API on site B, the browser asks site B's server: 'Are you okay with site A reading your response?' The server answers via HTTP headers — specifically, Access-Control-Allow-Origin. If the server says yes to site A, the browser releases the response. If it says no (or says nothing), the browser blocks the response from reaching the JavaScript. This is the entire mechanism. CORS is the server telling the browser which external sites are allowed to read its responses.&lt;br&gt;
How Developers Break It&lt;br&gt;
MISTAKE 1 — ALLOW-ORIGIN: * ON AUTHENTICATED ENDPOINTS&lt;br&gt;
The wildcard '*' means 'any website on the internet can read this response.' For truly public data — a public API with no authentication, serving non-sensitive data — this is fine. For anything behind authentication, it's a disaster. If your authenticated API returns Access-Control-Allow-Origin: *, any malicious website a user visits can make authenticated requests to your API (using the user's cookies) and read the response. The browser sends the cookies; the wildcard lets the malicious site read what comes back.&lt;br&gt;
MISTAKE 2 — REFLECTING THE ORIGIN HEADER WITHOUT CHECKING IT&lt;br&gt;
A common pattern: the server reads the Origin header from the incoming request and echoes it back in Access-Control-Allow-Origin, so every requesting site gets 'allowed.' Developers do this because it 'works' for every frontend they test. An attacker sees it too: their site sends a request with their origin, the server echoes it, and the browser says 'allowed.' It's a wildcard with extra steps.&lt;br&gt;
▸ &lt;a href="https://x.com/TJaswani7857" rel="noopener noreferrer"&gt;https://x.com/TJaswani7857&lt;/a&gt;&lt;br&gt;
MISTAKE 3 — TRUSTING SUBSTRINGS OR REGEX POORLY&lt;br&gt;
Some configurations check whether the origin contains or starts with a trusted domain. An attacker registers a domain like 'trusted-site.com.evil.com' or 'evil-trusted-site.com' and the check passes. Substring matching on security boundaries is a recurring source of bypasses in CORS, CSP, and URL validation alike.&lt;br&gt;
What an Attacker Does With a Broken CORS&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Finds the misconfiguration. Send a request with a test Origin header and check whether the response reflects it or returns a wildcard with credentials allowed. This takes seconds and is trivially automated.&lt;/li&gt;
&lt;li&gt; Builds an exploit page. A simple HTML page with a few lines of JavaScript that makes a credentialed request to your API. No special tools needed — just a browser and a web page.&lt;/li&gt;
&lt;li&gt; Hosts the page and lures a victim. If the target user visits the attacker's page while logged into your app, the browser sends their cookies to your API, the API responds, and the attacker's JavaScript reads the response. User data, account details, whatever the API returns — exfiltrated silently.
How to Fix It
•  Never use Access-Control-Allow-Origin: * on any endpoint that uses authentication or returns sensitive data. Whitelist the specific origins that need access and return only those.
•  Don't reflect the Origin header blindly. Maintain an explicit allowlist of trusted origins and check against it exactly — not with contains, startsWith, or regex that can be tricked.
•  Set Access-Control-Allow-Credentials: true only when you've verified the origin against your allowlist. Credentials plus a weak origin check is the exploitable combination.
•  Use a CORS configuration library your framework provides rather than hand-rolling headers — it's harder to make the allowlist mistakes with a well-tested library than with manual header setting.
•  Test your own configuration. Send requests with unexpected Origin headers and see what your server does. The tool linked below automates this check.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;CORS errors in development push you toward the permissive fix. The permissive fix, shipped to production, opens your API to any website on the internet. The gap between 'it works in development' and 'it's secure in production' is exactly one misconfigured header — and most teams never check it after the console error disappears. Check yours.&lt;br&gt;
— Tarun Jaswani&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Vulnerabilities You're Probably Shipping Right Now — and How to Stop, in Plain Developer Terms.</title>
      <dc:creator>Tarun Jaswani</dc:creator>
      <pubDate>Fri, 03 Jul 2026 10:27:35 +0000</pubDate>
      <link>https://dev.to/tarun_jaswani_e9a4c1020df/the-vulnerabilities-youre-probably-shipping-right-now-and-how-to-stop-in-plain-developer-terms-2i0e</link>
      <guid>https://dev.to/tarun_jaswani_e9a4c1020df/the-vulnerabilities-youre-probably-shipping-right-now-and-how-to-stop-in-plain-developer-terms-2i0e</guid>
      <description>&lt;p&gt;Here is the uncomfortable truth about most security breaches: they are not the work of shadowy geniuses defeating brilliant defenses. They are the result of the same small set of ordinary, well-understood coding mistakes, made over and over, in codebase after codebase. The attacker rarely needs to be clever. They just need to find the one place where a developer trusted input they shouldn't have, or left a default in place, or concatenated a string that should have been parameterised.&lt;br&gt;
That is genuinely good news, because it means securing your code is not about becoming a security expert. It is about recognising a handful of recurring patterns and applying their equally well-understood fixes. This article walks through the vulnerabilities most likely to be sitting in your code right now — the ones that actually get exploited — explained from a developer's point of view, each with the concrete habit that prevents it. No exploit code, no attacker playbook: just what the bug is, why it happens, and how to not ship it.&lt;br&gt;
The One Idea Underneath Almost Every Vulnerability&lt;br&gt;
Before the specifics, internalise the single principle that explains the majority of them: never trust input, and never mix untrusted data with commands. Almost every major class of vulnerability is a variation on data from outside your program being treated as if it were safe — as if it were code you wrote, a value you controlled, or a user you'd verified. The moment untrusted input is allowed to change what your program does rather than just what it processes, you have a vulnerability. Hold that idea and the specific bugs below become instances of one mistake.&lt;/p&gt;

&lt;p&gt;KEY The mental model&lt;br&gt;
Treat every piece of data that originates outside your code — user input, URL parameters, headers, uploaded files, API responses, anything — as hostile until proven safe. Your job is to keep that untrusted data as inert data, never letting it become a command, a query, or markup. Most of secure coding is enforcing that one boundary.&lt;/p&gt;

&lt;p&gt;1 — Injection (the untrusted string that becomes a command)&lt;br&gt;
Injection is the archetype and still one of the most damaging. It happens when your code takes untrusted input and builds a command out of it — most famously a database query. If you assemble a query by gluing user input directly into a query string, a crafted input can change the meaning of the query itself, because the database cannot tell your intended query apart from the attacker's addition. The data crossed the line into becoming code.&lt;br&gt;
The fix is not to try to 'clean' the input by hand — that is a losing game. The fix is to never mix data and command in the first place. Use parameterised queries (prepared statements), where the query structure and the data are sent to the database separately, so the data can never be interpreted as part of the command. Your database driver already supports this. The rule: never build a query, shell command, or any interpreted string by concatenating untrusted input — pass the input as a separate parameter, always.&lt;br&gt;
THE HABIT&lt;br&gt;
▸ Use parameterised queries / prepared statements for every database call, without exception.&lt;br&gt;
▸ For any system command, avoid passing user input to a shell; use APIs that take arguments as a list, not a concatenated string.&lt;br&gt;
▸ Treat 'I'll just sanitise it myself' as a red flag — use the library mechanism designed to separate data from command.&lt;br&gt;
2 — Cross-Site Scripting (untrusted data that becomes page markup)&lt;br&gt;
XSS is injection's front-end cousin. It happens when your application takes untrusted input and places it into a web page without properly encoding it, so the browser interprets attacker-supplied content as active markup or script rather than inert text. The result is that an attacker's content runs in the context of your page, in your users' browsers — able to steal sessions, act as the user, or deface the experience.&lt;br&gt;
The fix is contextual output encoding: whenever you place data into a page, encode it for the context it's going into so the browser treats it as text to display, not code to run. Modern frameworks do much of this automatically — which is exactly why you should use their built-in rendering rather than bypassing it. The danger zones are the escape hatches: the functions that inject raw HTML directly. Reach for those and you have opted out of the protection your framework was giving you.&lt;br&gt;
THE HABIT&lt;br&gt;
▸ Let your framework render output — it encodes by default. Trust that default.&lt;br&gt;
▸ Treat any 'render raw HTML' function as a security decision, not a convenience; avoid it for anything containing untrusted data.&lt;br&gt;
▸ Add a Content Security Policy as a second layer, so even a slip is contained.&lt;br&gt;
3 — Broken Authentication &amp;amp; Session Handling&lt;br&gt;
This is the category where the front door is left weak. It covers everything from storing passwords insecurely, to sessions that don't expire, to letting attackers try unlimited login attempts. The common thread is that the mechanism proving who a user is can be bypassed or worn down. Because authentication guards everything behind it, a weakness here is uniquely costly.&lt;br&gt;
THE HABIT&lt;br&gt;
▸ Never store passwords in plain text or with fast/general-purpose hashing. Use a purpose-built password hashing algorithm (the well-known slow, salted ones) via a maintained library — never roll your own.&lt;br&gt;
▸ Don't build your own auth from scratch if a vetted framework or provider will do it. Authentication is famously easy to get subtly, dangerously wrong.&lt;br&gt;
▸ Enforce rate limiting and lockouts on login to stop unlimited guessing, and support multi-factor authentication.&lt;br&gt;
▸ Expire and invalidate sessions properly — on logout, after inactivity, and after a password change.&lt;br&gt;
4 — Broken Access Control (forgetting to check 'are you allowed?')&lt;br&gt;
This is one of the most common and most under-appreciated. Authentication asks 'who are you?'; access control asks 'are you allowed to do this?' The bug is failing to check the second question on every sensitive action. The classic form: a user can access another user's data simply by changing an ID in the URL, because the server checked that someone was logged in but never checked that this particular someone was permitted to see that particular record.&lt;br&gt;
The fix is to enforce authorisation checks on the server, for every request that touches protected data or actions — never assuming that because the UI didn't show an option, the user can't invoke it. The client is fully under the user's control; the only place access control counts is the server. Check permission at the point of every sensitive operation, based on the authenticated user, against the specific resource being requested.&lt;br&gt;
THE HABIT&lt;br&gt;
▸ Enforce every authorisation check server-side; treat client-side checks as UX only, never as security.&lt;br&gt;
▸ Verify that the logged-in user owns or may access the specific resource — don't just check that they're logged in.&lt;br&gt;
▸ Default to deny: no access unless explicitly granted.&lt;br&gt;
5 — Security Misconfiguration &amp;amp; Leaky Secrets&lt;br&gt;
Sometimes the code is fine and the deployment betrays it. Default credentials left unchanged, verbose error messages that leak internal details, debug mode enabled in production, overly permissive access, and — the one that burns so many teams — secrets committed to the repository. API keys, database passwords, and tokens hardcoded into source and pushed to version control are among the most common and most exploited exposures, because automated tools scan public repositories for exactly these.&lt;br&gt;
THE HABIT&lt;br&gt;
▸ Keep secrets out of code entirely — use environment variables or a secrets manager, and add secret patterns to your ignore files.&lt;br&gt;
▸ Change every default credential and disable debug/verbose errors in production; return generic error messages to users and log the detail server-side.&lt;br&gt;
▸ Scan your repo history for committed secrets; if one leaked, rotate it — removing the commit is not enough once it's been pushed.&lt;br&gt;
6 — Vulnerable Dependencies (the bug you didn't write)&lt;br&gt;
Modern applications are mostly other people's code — dozens or hundreds of dependencies. When one of them has a known vulnerability, your application inherits it, even though you wrote none of the flawed code. This is now one of the most significant sources of real-world risk precisely because it is invisible: the vulnerability is deep in a package you pulled in three layers down and never looked at.&lt;br&gt;
THE HABIT&lt;br&gt;
Based on the data across the tables in your spreadsheet, here are the links related to &lt;strong&gt;cyber security&lt;/strong&gt;, categorized by their context:### 1. Cyber Persona Profile LinksIn the &lt;strong&gt;Persona&lt;/strong&gt; table, a dedicated profile column for &lt;strong&gt;"Cyber"&lt;/strong&gt; contains the following social media and professional profile links:  * &lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;code&gt;https://www.linkedin.com/in/tarun-jaswani-a85b55401/&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;About.me:&lt;/strong&gt; &lt;code&gt;https://about.me/tarun_jaswani&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;code&gt;https://github.com/tarunjaswani&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minds:&lt;/strong&gt; &lt;code&gt;https://www.minds.com/tarunjaswani/&lt;/code&gt;### 2. Cybersecurity Articles &amp;amp; ResourcesThe following links point to articles, playbooks, and discussions regarding cyber security, AI security, and digital safety found in the &lt;strong&gt;ALL Links&lt;/strong&gt; and &lt;strong&gt;Sheet9&lt;/strong&gt; tables:  * &lt;strong&gt;Cybersecurity Impact:&lt;/strong&gt; &lt;code&gt;https://medium.com/@rajkarar814/how-cybersecurity-can-change-the-world-dd4cd368c346?postPublishedType=initial&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Security Risks:&lt;/strong&gt; &lt;code&gt;https://medium.com/@t20012195/the-ai-security-problem-nobody-is-taking-seriously-enough-1fd7ea790cc5&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crypto Wallet Security:&lt;/strong&gt; &lt;code&gt;https://app.notion.com/p/The-Crypto-Wallet-Security-Playbook-38ec05c63c4380bfa07ee0c6949957dc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hacking &amp;amp; Everyday Habits Discussion:&lt;/strong&gt; &lt;code&gt;https://www.wikidata.org/w/index.php?title=Talk:Q140450878&amp;amp;oldid=2514561359#You_Don't_Need_to_Fear_Hackers._You_Need_to_Fix_the_Six_Everyday_Habits_That_Leave_Your_Door_Unlocked.&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeFi Protocol Smart Contract Risk Evaluation Checklist:&lt;/strong&gt; &lt;code&gt;https://app.notion.com/p/A-systematic-checklist-for-evaluating-any-DeFi-protocol-before-depositing-capital-covering-smart-c-36ec05c63c4380399336f271b6458e18&lt;/code&gt;
▸ Run automated dependency scanning in your pipeline so known-vulnerable packages are flagged automatically.
▸ Keep dependencies updated; unmaintained or long-outdated packages are a growing liability.
▸ Prefer well-maintained, widely-used libraries, and minimise how many you pull in — every dependency is attack surface.
The Takeaway for Developers
Notice what all six have in common: none required you to become a cryptographer or a penetration tester. Each is a recurring pattern with a boring, reliable, well-supported fix — parameterise, encode, hash properly, check authorisation server-side, keep secrets out of code, scan your dependencies. Security for developers is far less about heroics than about consistently applying these unglamorous habits, and using the safe mechanisms your tools already provide instead of the convenient escape hatches that opt you out of them.
The most secure developers are not the ones who know the most exotic attacks. They are the ones who never trust input, never mix data with commands, and reach for the safe default every single time — so the ordinary mistakes that cause most breaches simply never make it into their code.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
