<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
<channel rdf:about="https://sourceguardian.com/blog.html">
<title>What's happening in our world</title>
<link>https://sourceguardian.com/blog.html</link>
<description>Catch up on all the latest news, updates and tips from us...  We don't just blog about our work, we also cover industry topics.  Check back to see what we're currently talking about, or click the orange RSS button to subscribe!</description>
<dc:language>en-us</dc:language>
<dc:rights></dc:rights>
<dc:date>2026-10-09T09:30:40+01:00</dc:date>
<dc:creator></dc:creator>
<dc:subject></dc:subject>
<items>
<rdf:Seq><rdf:li rdf:resource="https://sourceguardian.com/blog-how-layered-encoding-secures-php-code-post-306-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-5-php-script-packaging-methods-compared-post-305-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-php-license-servers-revocation-and-renewal-tips-post-304-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-why-use-watermarks-for-php-code-protection--post-303-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-5-steps-to-implement-php-license-validation-post-302-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-how-automated-scanning-secures-php-apps-post-301-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-what-is-bytecode-compilation-in-php--post-300-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-best-tools-for-legacy-php-protection-post-299-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-dynamic-ip-restrictions-for-licensing-control-post-298-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-how-bytecode-compilation-protects-php-scripts-post-297-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-ip-locking-for-enterprises-best-practices-post-296-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-encoding-php-scripts-for-version-flexibility-post-295-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-how-to-store-encryption-keys-securely-in-php-post-294-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-dynamic-licensing-in-cross-platform-php-encoding-post-293-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-how-php-bytecode-encoding-protects-scripts-post-292-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-how-to-secure-secrets-in-php-ci-cd-pipelines-post-291-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-sourceguardian-vs-ioncube-loader-comparison-post-290-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-top-5-benefits-of-encryption-layers-for-php-scripts-post-289-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-sourceguardian-vs-ioncube-encoding-comparison-post-288-1.html"/>
<rdf:li rdf:resource="https://sourceguardian.com/blog-php-encryption-strength-analyzer-post-287-1.html"/>
</rdf:Seq>
</items>
<image rdf:resource=""/>
</channel>
<item rdf:about="https://sourceguardian.com/blog-how-layered-encoding-secures-php-code-post-306-1.html">
<title>How Layered Encoding Secures PHP Code</title>
<link>https://sourceguardian.com/blog-how-layered-encoding-secures-php-code-post-306-1.html</link>
<description>&lt;h1 id=&quot;how-layered-encoding-secures-php-code&quot; tabindex=&quot;-1&quot;&gt;How Layered Encoding Secures PHP Code&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;Layered encoding makes &lt;a href=&quot;https://www.php.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;PHP&lt;/a&gt; code harder to read and copy - not impossible to reverse...</description>
<dc:date>2026-10-05T02:27:31+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-how-layered-encoding-secures-php-code-post-306-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-5-php-script-packaging-methods-compared-post-305-1.html">
<title>5 PHP Script Packaging Methods Compared</title>
<link>https://sourceguardian.com/blog-5-php-script-packaging-methods-compared-post-305-1.html</link>
<description>&lt;h1 id=&quot;5-php-script-packaging-methods-compared&quot; tabindex=&quot;-1&quot;&gt;5 PHP Script Packaging Methods Compared&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If I had to boil this down to one point, itâ€™s this: the more you try to hide PHP code, the more setup you add.&lt;/strong&gt; In this comparison, I see five clear options: minified...</description>
<dc:date>2026-09-28T04:01:11+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-5-php-script-packaging-methods-compared-post-305-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-php-license-servers-revocation-and-renewal-tips-post-304-1.html">
<title>PHP License Servers: Revocation and Renewal Tips</title>
<link>https://sourceguardian.com/blog-php-license-servers-revocation-and-renewal-tips-post-304-1.html</link>
<description>&lt;h1 id=&quot;php-license-servers-revocation-and-renewal-tips&quot; tabindex=&quot;-1&quot;&gt;PHP License Servers: Revocation and Renewal Tips&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If I had to boil this down to one rule, itâ€™s this: &lt;em&gt;treat expiration, suspension, and revocation as three different events&lt;/em&gt; and wire your PHP app to...</description>
<dc:date>2026-09-21T03:11:15+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-php-license-servers-revocation-and-renewal-tips-post-304-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-why-use-watermarks-for-php-code-protection--post-303-1.html">
<title>Why Use Watermarks for PHP Code Protection?</title>
<link>https://sourceguardian.com/blog-why-use-watermarks-for-php-code-protection--post-303-1.html</link>
<description>&lt;h1 id=&quot;why-use-watermarks-for-php-code-protection&quot; tabindex=&quot;-1&quot;&gt;Why Use Watermarks for PHP Code Protection?&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If your PHP code leaks, protection alone may not be enough - you also need a way to tie that copy back to a customer, build, or license.&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Iâ€™d sum it up...</description>
<dc:date>2026-09-14T03:25:53+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-why-use-watermarks-for-php-code-protection--post-303-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-5-steps-to-implement-php-license-validation-post-302-1.html">
<title>5 Steps to Implement PHP License Validation</title>
<link>https://sourceguardian.com/blog-5-steps-to-implement-php-license-validation-post-302-1.html</link>
<description>&lt;h1 id=&quot;5-steps-to-implement-php-license-validation&quot; tabindex=&quot;-1&quot;&gt;5 Steps to Implement PHP License Validation&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If you ship &lt;a href=&quot;https://www.php.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;PHP&lt;/a&gt; code to customer servers, a one-time key check is not enough.&lt;/strong&gt;...</description>
<dc:date>2026-09-07T03:55:37+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-5-steps-to-implement-php-license-validation-post-302-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-how-automated-scanning-secures-php-apps-post-301-1.html">
<title>How Automated Scanning Secures PHP Apps</title>
<link>https://sourceguardian.com/blog-how-automated-scanning-secures-php-apps-post-301-1.html</link>
<description>&lt;h1 id=&quot;how-automated-scanning-secures-php-apps&quot; tabindex=&quot;-1&quot;&gt;How Automated Scanning Secures PHP Apps&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If you only do three things, do these:&lt;/strong&gt; run &lt;code&gt;composer audit&lt;/code&gt; on every build, run static analysis before merge, and scan staging before release.&lt;/p&gt; &lt;p&gt;I see the...</description>
<dc:date>2026-08-31T03:26:31+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-how-automated-scanning-secures-php-apps-post-301-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-what-is-bytecode-compilation-in-php--post-300-1.html">
<title>What Is Bytecode Compilation in PHP?</title>
<link>https://sourceguardian.com/blog-what-is-bytecode-compilation-in-php--post-300-1.html</link>
<description>&lt;h1 id=&quot;what-is-bytecode-compilation-in-php&quot; tabindex=&quot;-1&quot;&gt;What Is Bytecode Compilation in PHP?&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;PHP does not run your &lt;code&gt;.php&lt;/code&gt; file line by line from raw text.&lt;/strong&gt; It first turns your code into Zend opcodes, then the &lt;a href=&quot;https://en.wikipedia.org/wiki/Zend_Engine&quot;...</description>
<dc:date>2026-08-24T03:06:35+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-what-is-bytecode-compilation-in-php--post-300-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-best-tools-for-legacy-php-protection-post-299-1.html">
<title>Best Tools for Legacy PHP Protection</title>
<link>https://sourceguardian.com/blog-best-tools-for-legacy-php-protection-post-299-1.html</link>
<description>&lt;h1 id=&quot;best-tools-for-legacy-php-protection&quot; tabindex=&quot;-1&quot;&gt;Best Tools for Legacy PHP Protection&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If I had to pick one tool for most legacy PHP setups, Iâ€™d put &lt;em&gt;&lt;a href=&quot;https://www.sourceguardian.com/&quot;&gt;SourceGuardian&lt;/a&gt;&lt;/em&gt; first, &lt;em&gt;ionCube&lt;/em&gt; second, &lt;em&gt;&lt;a...</description>
<dc:date>2026-08-17T03:40:49+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-best-tools-for-legacy-php-protection-post-299-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-dynamic-ip-restrictions-for-licensing-control-post-298-1.html">
<title>Dynamic IP Restrictions for Licensing Control</title>
<link>https://sourceguardian.com/blog-dynamic-ip-restrictions-for-licensing-control-post-298-1.html</link>
<description>&lt;h1 id=&quot;dynamic-ip-restrictions-for-licensing-control&quot; tabindex=&quot;-1&quot;&gt;Dynamic IP Restrictions for Licensing Control&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;A fixed IP lock can block paying customers after a normal server move.&lt;/strong&gt; Thatâ€™s the core issue. If I want licensing control that still works in cloud, VPS,...</description>
<dc:date>2026-08-10T03:36:14+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-dynamic-ip-restrictions-for-licensing-control-post-298-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-how-bytecode-compilation-protects-php-scripts-post-297-1.html">
<title>How Bytecode Compilation Protects PHP Scripts</title>
<link>https://sourceguardian.com/blog-how-bytecode-compilation-protects-php-scripts-post-297-1.html</link>
<description>&lt;h1 id=&quot;how-bytecode-compilation-protects-php-scripts&quot; tabindex=&quot;-1&quot;&gt;How Bytecode Compilation Protects PHP Scripts&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If you ship PHP code to servers you do not control, plain source files are the weak point.&lt;/strong&gt; Bytecode compilation lowers that risk by removing readable...</description>
<dc:date>2026-08-03T10:16:14+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-how-bytecode-compilation-protects-php-scripts-post-297-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-ip-locking-for-enterprises-best-practices-post-296-1.html">
<title>IP Locking for Enterprises: Best Practices</title>
<link>https://sourceguardian.com/blog-ip-locking-for-enterprises-best-practices-post-296-1.html</link>
<description>&lt;h1 id=&quot;ip-locking-for-enterprises-best-practices&quot; tabindex=&quot;-1&quot;&gt;IP Locking for Enterprises: Best Practices&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;IP locking helps limit who can reach a PHP script, but it should never stand alone.&lt;/strong&gt; If I had to boil this article down to a short checklist, it would be this:...</description>
<dc:date>2026-07-27T02:25:32+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-ip-locking-for-enterprises-best-practices-post-296-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-encoding-php-scripts-for-version-flexibility-post-295-1.html">
<title>Encoding PHP Scripts for Version Flexibility</title>
<link>https://sourceguardian.com/blog-encoding-php-scripts-for-version-flexibility-post-295-1.html</link>
<description>&lt;h1 id=&quot;encoding-php-scripts-for-version-flexibility&quot; tabindex=&quot;-1&quot;&gt;Encoding PHP Scripts for Version Flexibility&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If you want one encoded PHP build to run across several PHP versions, I need to encode for the &lt;em&gt;lowest&lt;/em&gt; version I support and include every newer version I plan to...</description>
<dc:date>2026-07-20T02:15:57+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-encoding-php-scripts-for-version-flexibility-post-295-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-how-to-store-encryption-keys-securely-in-php-post-294-1.html">
<title>How to Store Encryption Keys Securely in PHP</title>
<link>https://sourceguardian.com/blog-how-to-store-encryption-keys-securely-in-php-post-294-1.html</link>
<description>&lt;h1 id=&quot;how-to-store-encryption-keys-securely-in-php&quot; tabindex=&quot;-1&quot;&gt;How to Store Encryption Keys Securely in PHP&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If your PHP encryption key leaks, your encrypted data is no longer safe. If you lose the key, you may lose the data for good.&lt;/strong&gt; Thatâ€™s the whole issue in one...</description>
<dc:date>2026-07-13T03:07:38+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-how-to-store-encryption-keys-securely-in-php-post-294-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-dynamic-licensing-in-cross-platform-php-encoding-post-293-1.html">
<title>Dynamic Licensing in Cross-Platform PHP Encoding</title>
<link>https://sourceguardian.com/blog-dynamic-licensing-in-cross-platform-php-encoding-post-293-1.html</link>
<description>&lt;h1 id=&quot;dynamic-licensing-in-cross-platform-php-encoding&quot; tabindex=&quot;-1&quot;&gt;Dynamic Licensing in Cross-Platform PHP Encoding&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If you encode PHP code but skip runtime license checks, you protect the files, not the usage.&lt;/strong&gt; That is the core point here.&lt;/p&gt; &lt;p&gt;Iâ€™d break it down...</description>
<dc:date>2026-07-06T03:16:36+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-dynamic-licensing-in-cross-platform-php-encoding-post-293-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-how-php-bytecode-encoding-protects-scripts-post-292-1.html">
<title>How PHP Bytecode Encoding Protects Scripts</title>
<link>https://sourceguardian.com/blog-how-php-bytecode-encoding-protects-scripts-post-292-1.html</link>
<description>&lt;h1 id=&quot;how-php-bytecode-encoding-protects-scripts&quot; tabindex=&quot;-1&quot;&gt;How PHP Bytecode Encoding Protects Scripts&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If you ship PHP code to other servers, plain source files are easy to read, copy, and edit.&lt;/strong&gt; Bytecode encoding lowers that risk by turning PHP into Zend opcodes,...</description>
<dc:date>2026-06-29T02:15:25+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-how-php-bytecode-encoding-protects-scripts-post-292-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-how-to-secure-secrets-in-php-ci-cd-pipelines-post-291-1.html">
<title>How to Secure Secrets in PHP CI/CD Pipelines</title>
<link>https://sourceguardian.com/blog-how-to-secure-secrets-in-php-ci-cd-pipelines-post-291-1.html</link>
<description>&lt;h1 id=&quot;how-to-secure-secrets-in-php-cicd-pipelines&quot; tabindex=&quot;-1&quot;&gt;How to Secure Secrets in PHP CI/CD Pipelines&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;A single leaked CI/CD token can lead to bad deploys, data loss, or cloud account abuse.&lt;/strong&gt; If I want to keep PHP pipeline secrets safe, I focus on four things:...</description>
<dc:date>2026-06-22T02:16:16+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-how-to-secure-secrets-in-php-ci-cd-pipelines-post-291-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-sourceguardian-vs-ioncube-loader-comparison-post-290-1.html">
<title>SourceGuardian vs ionCube: Loader Comparison</title>
<link>https://sourceguardian.com/blog-sourceguardian-vs-ioncube-loader-comparison-post-290-1.html</link>
<description>&lt;h1 id=&quot;sourceguardian-vs-ioncube-loader-comparison&quot; tabindex=&quot;-1&quot;&gt;SourceGuardian vs ionCube: Loader Comparison&lt;/h1&gt; &lt;p&gt;&lt;strong&gt;If you need a short answer: both loaders support PHP 4.x through 8.5, but they fit different setups.&lt;/strong&gt; Iâ€™d look at &lt;strong&gt;platform match, install access,...</description>
<dc:date>2026-06-15T02:21:22+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-sourceguardian-vs-ioncube-loader-comparison-post-290-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-top-5-benefits-of-encryption-layers-for-php-scripts-post-289-1.html">
<title>Top 5 Benefits of Encryption Layers for PHP Scripts</title>
<link>https://sourceguardian.com/blog-top-5-benefits-of-encryption-layers-for-php-scripts-post-289-1.html</link>
<description>&lt;h1 id=&quot;top-5-benefits-of-encryption-layers-for-php-scripts&quot; tabindex=&quot;-1&quot;&gt;Top 5 Benefits of Encryption Layers for PHP Scripts&lt;/h1&gt; &lt;p&gt;Encryption layers are essential for protecting PHP scripts from theft, tampering, and misuse. They go beyond basic code obfuscation by combining bytecode...</description>
<dc:date>2026-06-08T03:21:26+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-top-5-benefits-of-encryption-layers-for-php-scripts-post-289-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-sourceguardian-vs-ioncube-encoding-comparison-post-288-1.html">
<title>SourceGuardian vs. ionCube: Encoding Comparison</title>
<link>https://sourceguardian.com/blog-sourceguardian-vs-ioncube-encoding-comparison-post-288-1.html</link>
<description>&lt;h1 id=&quot;sourceguardian-vs-ioncube-encoding-comparison&quot; tabindex=&quot;-1&quot;&gt;SourceGuardian vs. ionCube: Encoding Comparison&lt;/h1&gt; &lt;p&gt;When it comes to protecting PHP code, &lt;strong&gt;&lt;a href=&quot;https://www.sourceguardian.com/&quot;&gt;SourceGuardian&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;ionCube&lt;/strong&gt; are two of the most popular...</description>
<dc:date>2026-06-01T08:16:35+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-sourceguardian-vs-ioncube-encoding-comparison-post-288-1.html</feedburner:origLink>
</item>
<item rdf:about="https://sourceguardian.com/blog-php-encryption-strength-analyzer-post-287-1.html">
<title>PHP Encryption Strength Analyzer</title>
<link>https://sourceguardian.com/blog-php-encryption-strength-analyzer-post-287-1.html</link>
<description>&lt;h1 id=&quot;php-encryption-strength-analyzer&quot; tabindex=&quot;-1&quot;&gt;PHP Encryption Strength Analyzer&lt;/h1&gt; &lt;iframe class=&quot;wrapifai-iframe&quot; src=&quot;https://app.wrapifai.com/embed/48ce82&quot; frameborder=&quot;0&quot; loading=&quot;lazy&quot; id=&quot;wrapifai-iframe&quot; width=&quot;100%&quot; height=&quot;400px&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; bgcolor=&quot;white&quot;...</description>
<dc:date>2026-05-25T01:07:48+00:00</dc:date>
<feedburner:origLink>https://sourceguardian.com/blog-php-encryption-strength-analyzer-post-287-1.html</feedburner:origLink>
</item>
</rdf:RDF>
