{"id":864,"date":"2023-04-20T02:35:12","date_gmt":"2023-04-19T18:35:12","guid":{"rendered":"https:\/\/vinta.ws\/code\/?p=864"},"modified":"2026-03-17T01:19:42","modified_gmt":"2026-03-16T17:19:42","slug":"how-to-stay-safe-online-tips-for-personal-security","status":"publish","type":"post","link":"https:\/\/vinta.ws\/code\/how-to-stay-safe-online-tips-for-personal-security.html","title":{"rendered":"Surviving the Digital Dark Forest: Tips for Staying Safe Online"},"content":{"rendered":"<p>How I learned to &quot;start worrying&quot; and to embrace the illusion of safety.<\/p>\n<p>Digital security and privacy have become more important than ever. With cyber threats constantly evolving, it is crucial to stay up-to-date with best practices and take proactive measures to protect your online presence. This comprehensive guide covers a wide range of security and privacy recommendations for various platforms and scenarios, aiming to help you fortify your digital life and assets.<\/p>\n<h2>General<\/h2>\n<ul>\n<li>Use a password manager: <a href=\"https:\/\/1password.com\/\">1Password<\/a> or <a href=\"https:\/\/bitwarden.com\/\">Bitwarden<\/a>.\n<ul>\n<li>Never reuse passwords.<\/li>\n<li>Use strong passwords.<\/li>\n<\/ul>\n<\/li>\n<li>Always enable TOTP-based 2FA (Time-based One-Time Password).\n<ul>\n<li>Avoid SMS-based 2FA which is vulnerable to <a href=\"https:\/\/cointelegraph.com\/news\/crypto-sim-swap-how-easy-is-sim-swap-crypto-hack\">SIM swap attack<\/a>.<\/li>\n<li>Even if you don't use SMS-based 2FA, your phone number might be used as a &quot;<a href=\"https:\/\/blog.cloudflare.com\/post-mortem-todays-attack-apparent-google-app\/\">Recovery Method<\/a>&quot;.<\/li>\n<\/ul>\n<\/li>\n<li>Avoid using your password manager to generate one-time passwords for critical accounts.\n<ul>\n<li>Otherwise, the password manager would become a single point of failure once compromised.<\/li>\n<li>Instead, use a separate authenticator app: <a href=\"https:\/\/www.yubico.com\/products\/yubico-authenticator\/\">Yubico Authenticator<\/a> or <a href=\"https:\/\/apps.apple.com\/us\/app\/google-authenticator\/id388497605\">Google Authenticator<\/a>.<\/li>\n<li>Turn off &quot;<a href=\"https:\/\/thehackernews.com\/2023\/09\/retool-falls-victim-to-sms-based.html\">Cloud Syncing<\/a>&quot; feature if you're using Google Authenticator.<\/li>\n<\/ul>\n<\/li>\n<li>Use <a href=\"https:\/\/passkey.org\/\">Passkey<\/a>.<\/li>\n<li>Use security keys: <a href=\"https:\/\/www.yubico.com\/\">YubiKey<\/a>.<\/li>\n<li>Use different email addresses when registering services if possible.\n<ul>\n<li>Use <a href=\"https:\/\/support.apple.com\/guide\/icloud\/set-up-hide-my-email-mm9d9012c9e8\/icloud\">iCloud+ Hide My Email<\/a> to generate disposable email addresses.<\/li>\n<\/ul>\n<\/li>\n<li>Always use HTTPS.<\/li>\n<li><strong>Don't blindly click links you see in your emails or search results; they could be scams!<\/strong>\n<ul>\n<li>Instead, add your frequently visited websites to your browser bookmarks.<\/li>\n<\/ul>\n<\/li>\n<li>Carefully review requested permissions when you connect third-party apps to your critical accounts.<\/li>\n<li>Regularly review authenticated devices or sessions for your critical accounts.\n<ul>\n<li>Revoke them if you're not sure what they are.<\/li>\n<li>Explicitly logout after finishing your operations or use Incognito mode.<\/li>\n<\/ul>\n<\/li>\n<li>Be skeptical of urgent requests, even from &quot;known&quot; contacts.<\/li>\n<li>Have an incident response plan ready BEFORE you need it.\n<ul>\n<li>If your computer is compromised:\n<ul>\n<li>Immediately disconnect from network (disable Wi-Fi\/unplug ethernet cable) to prevent further data exfiltration.<\/li>\n<li>DO NOT reboot or shutdown: this preserves evidence in memory and may prevent malware from establishing persistence.<\/li>\n<li>Document everything: take photos of screen, note the time, and any suspicious behavior observed<\/li>\n<li>Use a different device to change critical passwords and revoke sessions.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Do things that can calm your anxiety.<\/li>\n<li>Read <a href=\"https:\/\/github.com\/Lissy93\/personal-security-checklist\">Personal Security Checklist<\/a>.<\/li>\n<li>Read <a href=\"https:\/\/officercia.mirror.xyz\/_nD1Rtxe1PplK-NQzIq9sl-KNtajQG0aKqYsV36RTjA\">An ultimate list of rules any on-chain survivor should follow to stay safe<\/a>.<\/li>\n<\/ul>\n<h2>Privacy<\/h2>\n<ul>\n<li>Use privacy-friendly VPN: <a href=\"https:\/\/mullvad.net\">Mullvad<\/a>.<\/li>\n<li>Use ad blocker: <a href=\"https:\/\/github.com\/uBlockOrigin\/uBOL-home\">uBlock Origin Lite<\/a>.<\/li>\n<li>Use end-to-end encrypted messaging app: <a href=\"https:\/\/signal.org\/\">Signal<\/a>.<\/li>\n<li>Read <a href=\"https:\/\/github.com\/Lissy93\/awesome-privacy\">Awesome Privacy<\/a>.<\/li>\n<li>Read <a href=\"https:\/\/www.privacyguides.org\/en\/\">Privacy Guides<\/a>.<\/li>\n<li>Read <a href=\"https:\/\/anonymousplanet.org\/guide\/\">The Hitchhiker's Guide to Online Anonymity<\/a>.<\/li>\n<\/ul>\n<h2>Credit Card<\/h2>\n<ul>\n<li>Use different credit cards with different merchants.\n<ul>\n<li>Some for online shopping.<\/li>\n<li>Some for physical payments or Apple Pay\/Google Pay.<\/li>\n<\/ul>\n<\/li>\n<li>Prefer credit cards over debit cards.\n<ul>\n<li>Credit card fraud protection is superior because fraudulent charges don't immediately deplete your bank account balance.<\/li>\n<\/ul>\n<\/li>\n<li>Set spending limits.<\/li>\n<\/ul>\n<h2>Crypto<\/h2>\n<ul>\n<li>For large amounts of assets, always store them in hardware wallets or multisig wallets.<\/li>\n<li>Use multiple hardware wallets from different vendors: <a href=\"https:\/\/trezor.io\/\">Trezor<\/a> or <a href=\"https:\/\/www.ledger.com\/\">Ledger<\/a>.\n<ul>\n<li>Some should only hold assets and never interact with DeFi apps.<\/li>\n<li>Some are used for trading or farming.<\/li>\n<\/ul>\n<\/li>\n<li>Use hardware wallet's <a href=\"https:\/\/trezor.io\/learn\/a\/passphrases-and-hidden-wallets\">hidden wallet<\/a> with custom passphrase.<\/li>\n<li>Always verify transaction details on <strong>hardware wallet screens<\/strong>, not just computer screens.\n<ul>\n<li>Even the Safe UI was spoofed in the infamous <a href=\"https:\/\/learn.bybit.com\/en\/this-week-in-bybit\/bybit-security-incident-timeline\">Bybit hack<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>Write your seed phrases on paper or <a href=\"https:\/\/jlopp.github.io\/metal-bitcoin-storage-reviews\/\">metal<\/a>, and store them in a physical safe.\n<ul>\n<li>Keep at least 2 copies in different locations.<\/li>\n<li>Never store a hardware wallet's seed phrase digitally, NEVER.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Verify backups of your seed phrases every 3 months.<\/strong><\/li>\n<li><strong>Use multisig wallets: <a href=\"https:\/\/app.safe.global\/\">Gnosis Safe<\/a>.<\/strong><\/li>\n<li>Only store a small amount of assets in hot wallets.\n<ul>\n<li>If you follow this rule, it might be acceptable to store the seed phrase in a password manager.<\/li>\n<li>Furthermore, encrypt the seed phrase before storing it.<\/li>\n<\/ul>\n<\/li>\n<li>When transferring tokens to a new address, always send a small amount first, and make sure you can transfer them out.\n<ul>\n<li>It may waste gas, but it's better than losing funds.<\/li>\n<\/ul>\n<\/li>\n<li>Add addresses to contacts or whitelists.<\/li>\n<li>Always approve tokens with the exact amount, never use infinite (<code>type(uint256).max<\/code>) approval.\n<ul>\n<li>It may waste gas, but it's better than losing funds.<\/li>\n<\/ul>\n<\/li>\n<li>Always check the slippage setting before swapping.<\/li>\n<li>Review your token approvals regularly: <a href=\"https:\/\/revoke.cash\/\">Revoke.cash<\/a>.\n<ul>\n<li>Before revoking an approval, you should check the original <code>approve()<\/code> tx is initiated by you.<\/li>\n<li>Attackers can create a fake ERC-20 token and set allowance for you.<\/li>\n<\/ul>\n<\/li>\n<li>Signing could be dangerous.\n<ul>\n<li>If it's a clear, human-readable message, it's probably safe to sign.<\/li>\n<li>If it contains a large amount of data, read carefully before signing.<\/li>\n<li>If the message starts with <code>0x<\/code>, just don't sign.<\/li>\n<li>Especially, there are &quot;<a href=\"https:\/\/twitter.com\/0xQuit\/status\/1619058717470900224\">permit<\/a>&quot; signatures.<\/li>\n<\/ul>\n<\/li>\n<li>Use browser extensions or wallets that can simulate\/preview transactions.\n<ul>\n<li><a href=\"https:\/\/walletguard.app\/\">Wallet Guard<\/a><\/li>\n<li><a href=\"https:\/\/www.scamsniffer.io\/\">Scam Sniffer<\/a><\/li>\n<li><a href=\"https:\/\/rabby.io\/\">Rabby<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Learn how to decode a transaction.\n<ul>\n<li>Search the first 10 characters on <a href=\"https:\/\/www.4byte.directory\/signatures\/\">Ethereum Signature Database<\/a><\/li>\n<li>Simulate the transaction raw data on <a href=\"https:\/\/tenderly.co\/\">Tenderly<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>Use Etherscan's <a href=\"https:\/\/etherscan.io\/myaddress\">Watch List<\/a> to monitor your account activities.\n<ul>\n<li>Though the notification might be a bit delayed, it's not real-time.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Website (domain name or frontend code) can be hacked as well, even if smart contracts are secure.<\/strong><\/li>\n<li>Read <a href=\"https:\/\/github.com\/slowmist\/Blockchain-dark-forest-selfguard-handbook\">Blockchain Dark Forest Selfguard Handbook<\/a>.<\/li>\n<\/ul>\n<h2>macOS<\/h2>\n<ul>\n<li><strong>Use an application firewall and network monitor: <a href=\"https:\/\/www.obdev.at\/products\/littlesnitch\/index.html\">Little Snitch<\/a>.<\/strong><\/li>\n<li><strong>Use an antivirus software: <a href=\"https:\/\/www.bitdefender.com\/en-us\/consumer\/\">Bitdefender Antivirus<\/a>.<\/strong><\/li>\n<li>Turn on Firewall.\n<ul>\n<li><code>System Settings &gt; Network &gt; Firewall &gt; Options &gt; Block all incoming connections<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Turn on FileVault which provides full disk encryption.\n<ul>\n<li><code>System Settings &gt; Privacy &amp; Security &gt; FileVault<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Power off your computer when not in use, in order for the disk to be encrypted.<\/li>\n<li>Automatically lock your screen when idle.\n<ul>\n<li><code>System Settings &gt; Lock Screen &gt; Require password after screen saver begins or display is turned off<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Set one of Hot Corners to &quot;Lock Screen&quot; and always trigger it when you're away from the keyboard.\n<ul>\n<li><code>System Settings &gt; Desktop &amp; Dock &gt; Hot Corners<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Disable AirDrop and Handoff.\n<ul>\n<li><code>System Settings &gt; General &gt; Airdrop &amp; Handoff<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Exclude sensitive folders from Spotlight.\n<ul>\n<li><code>System Settings &gt; Siri &amp; Spotlight &gt; Spotlight Privacy<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Don't use any apps that can read your clipboard or what you type.<\/li>\n<li>Don't use third-party input tools if possible.<\/li>\n<li><strong>Create separate browser profiles for different use cases.<\/strong>\n<ul>\n<li>One for daily activities.<\/li>\n<li>One for financial activities, <strong>don't install any extensions other than the password manager.<\/strong><\/li>\n<li>Use Incognito mode.<\/li>\n<li>Even better: use an isolated computer.<\/li>\n<\/ul>\n<\/li>\n<li>The fewer browser extensions installed, the better.\n<ul>\n<li><strong>Carefully review requested permissions when installing\/upgrading browser extensions.<\/strong><\/li>\n<li>Be aware that developers might sell their extension to someone else.<\/li>\n<\/ul>\n<\/li>\n<li>Disable Chrome's Preload pages.\n<ul>\n<li><code>Chrome &gt; Settings &gt; Performance &gt; Preload pages<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Install OS security patches as soon as possible.<\/li>\n<li>Use <a href=\"https:\/\/dangerzone.rocks\/\">Dangerzone<\/a> if you're working with PDFs.<\/li>\n<li>Read <a href=\"https:\/\/github.com\/drduh\/macOS-Security-and-Privacy-Guide\">macOS Security and Privacy Guide<\/a>.<\/li>\n<\/ul>\n<h2>iOS<\/h2>\n<ul>\n<li>Enable Data Protection (Erase all data after 10 failed passcode attempts).\n<ul>\n<li><code>Settings &gt; Touch ID &amp; Passcode &gt; Erase Data<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Change the default PIN of your SIM card.\n<ul>\n<li><code>Settings &gt; Cellular &gt; SIM PIN &gt; Change PIN<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Disable Predictive Text.\n<ul>\n<li><code>Settings &gt; General &gt; Keyboards &gt; Predictive<\/code><\/li>\n<li><code>Settings &gt; General &gt; Transfer or Reset iPhone &gt; Reset &gt; Reset Keyboard Dictionary<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Turn off AirDrop.<\/li>\n<li>Don't use third-party keyboard apps.\n<ul>\n<li>These apps will be able to access everything you type: passwords, messages, search terms, etc.<\/li>\n<\/ul>\n<\/li>\n<li>Restart your device regularly, ex: once a week.<\/li>\n<li>Rapidly press the side button 5 times to enter Emergency SOS mode when needed.\n<ul>\n<li>Under Emergency SOS mode, your passcode is required to re-enable Touch ID or Face ID.<\/li>\n<li>Use it when your device is about to be taken away.<\/li>\n<\/ul>\n<\/li>\n<li>Read <a href=\"https:\/\/telegra.ph\/Telegram--Discord-Security-Best-Practices-01-02\">Telegram &amp; Discord Security Best Practices<\/a>.<\/li>\n<li>Read <a href=\"https:\/\/www.privacyguides.org\/en\/os\/ios-overview\/\">Privacy Guides - iOS Overview<\/a>.<\/li>\n<\/ul>\n<h2>Developer<\/h2>\n<ul>\n<li>Always create API keys with minimum permissions and set a short expiration time if possible.<\/li>\n<li>Create distinct API keys for different purposes, services, or machines.\n<ul>\n<li>Deactivate the API key if you're not using it.<\/li>\n<\/ul>\n<\/li>\n<li>Avoid storing credentials in plain text on disk, such as in <code>.env<\/code> files or <code>~\/.aws\/credentials<\/code>.\n<ul>\n<li>Instead, store them in 1Password Environments and source them with <a href=\"https:\/\/vinta.ws\/code\/1password-cli-how-not-to-store-plaintext-aws-credentials-on-localhost.html\">1Password CLI<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>If you're unsure, run the program inside a non-root Docker container.<\/li>\n<li>The fewer IDE\/editor plugins installed, the better.<\/li>\n<li>Be aware of <strong>Supply Chain Attack<\/strong>.\n<ul>\n<li>Run tools like <code>npm audit<\/code> or <code>pip-audit<\/code> to check.<\/li>\n<\/ul>\n<\/li>\n<li>Enable security-related features on your GitHub repos.\n<ul>\n<li><a href=\"https:\/\/docs.github.com\/en\/code-security\/getting-started\/dependabot-quickstart-guide\">Dependabot<\/a><\/li>\n<li><a href=\"https:\/\/docs.github.com\/en\/code-security\/secret-scanning\/introduction\/about-secret-scanning\">Secret Scanning<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/docs.github.com\/en\/authentication\/managing-commit-signature-verification\/signing-commits\">Sign your Git commits<\/a>.<\/li>\n<\/ul>\n<h2>Wi-Fi<\/h2>\n<ul>\n<li>Avoid using Wi-Fi routers and IoT devices made in China if possible.\n<ul>\n<li>Due to documented security vulnerabilities and potential mandatory backdoor requirements.<\/li>\n<\/ul>\n<\/li>\n<li>Must change the default username\/password of your devices.<\/li>\n<li>Create a dedicated Wi-Fi network (guest network) for IoT devices.<\/li>\n<li>Keep your device firmware up-to-date.<\/li>\n<li>Use WPA3-Personal if possible.<\/li>\n<li>Disable remote access on your router.\n<ul>\n<li>If you really want to visit your router's management console through the Internet, set IP whitelist at least.<\/li>\n<\/ul>\n<\/li>\n<li>Disable WPS (Wi-Fi Protected Setup) which is vulnerable to brute-force attack.<\/li>\n<li>Avoid using public Wi-Fi.<\/li>\n<\/ul>\n<h2>Physical<\/h2>\n<ul>\n<li>Be cautious when plugging USB devices into your computer.\n<ul>\n<li>Don't charge devices from your computer if possible.<\/li>\n<\/ul>\n<\/li>\n<li>Be vigilant for key loggers.\n<ul>\n<li>Bring your own keyboard and USB hub when necessary.<\/li>\n<\/ul>\n<\/li>\n<li>Cover your laptop's camera with a sticky note.<\/li>\n<li>Use certified and well-protected extension cords.<\/li>\n<li>Get fire and earthquake insurance for your house.<\/li>\n<li>Shred or redact sensitive documents.\n<ul>\n<li>Instead of simply disposing of them in the trash.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Personal<\/h2>\n<ul>\n<li>Never share where you live or post photos that could potentially reveal your location.\n<ul>\n<li>Like a photo of the view from your window, such data can be exploited via OSINT (Open-Source INTelligence).<\/li>\n<li>If you really want to share where you've been (such as during travel), only post them after you're back home.<\/li>\n<\/ul>\n<\/li>\n<li>Don't reveal information during &quot;inbound&quot; calls.\n<ul>\n<li>Only share sensitive data during communications that you initiate.<\/li>\n<\/ul>\n<\/li>\n<li>Be aware that even if you take all precautions, you may still be vulnerable to a <a href=\"https:\/\/xkcd.com\/538\/\">$5 wrench attack<\/a>.\n<ul>\n<li>So keep things low-key.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>And don't forget: security is always a trade-off.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How I learned to \"start worrying\" and to embrace the illusion of safety.<\/p>\n","protected":false},"author":1,"featured_media":865,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[51,138,145],"class_list":["post-864","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-about-misc","tag-env","tag-ethereum","tag-security"],"_links":{"self":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/comments?post=864"}],"version-history":[{"count":0,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/posts\/864\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media\/865"}],"wp:attachment":[{"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/media?parent=864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/categories?post=864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vinta.ws\/code\/wp-json\/wp\/v2\/tags?post=864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}