<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP block check - Matteo Cisilino</title>
	<atom:link href="https://www.cisilino.com/en/tag/php-block-check/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cisilino.com/en/</link>
	<description>Guide su WordPress, server e sicurezza</description>
	<lastBuildDate>Fri, 30 Oct 2026 16:06:23 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Test tab: checking the protections work</title>
		<link>https://www.cisilino.com/en/2026/10/30/test-tab-checking-protections-work/</link>
					<comments>https://www.cisilino.com/en/2026/10/30/test-tab-checking-protections-work/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:44 +0000</pubDate>
				<category><![CDATA[CSDN manual]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[PHP block check]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1051</guid>

					<description><![CDATA[<p>The Test tab of the plugin CSDN runs two live checks: the PHP block in uploads and the plugin files' integrity. Here's how to use it and read the results.</p>
<p>The post <a href="https://www.cisilino.com/en/2026/10/30/test-tab-checking-protections-work/">Test tab: checking the protections work</a> first appeared on <a href="https://www.cisilino.com/en/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>A <strong>WordPress security test</strong> serves one purpose: to know whether a protection genuinely works, not just whether it&#8217;s switched on. The “Test” tab of the CSDN plugin runs two live checks. It changes no settings at all. It checks the site right now.</p>
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-test.webp" alt="Diagram of WordPress with the Test tab of the plugin CSDN for a WordPress security test" width="1200" height="630"/></figure>
<h2>Where to find the WordPress security test</h2>
<p>Open <strong>Settings &gt; Cisilino Site Defense Network</strong> (point 1 in the image). Click the <strong>Test</strong> tab (point 2). You&#8217;ll find two boxes:</p>
<ul>
<li>point 3: “Check PHP execution block in uploads”.</li>
<li>point 4: “Plugin file integrity”.</li>
</ul>
<p>After each button the site takes you back to the General tab, with a notice at the top. The result, though, is written in the Test tab. Reopen it to read it.</p>
<h2>Check PHP execution block in uploads</h2>
<p>This box tests the “Block PHP execution in wp-content/uploads” rule from the Hardening / IDS tab, described in the <a href="https://www.cisilino.com/en/?p=978">Hardening / IDS</a> chapter. The text explains that this is the only way to know whether the rule is genuinely effective on this site. A disabled <code>AllowOverride</code>, or a more specific block on the server, could make it useless without telling you.</p>
<h3>How to use it</h3>
<ol>
<li>In the Hardening / IDS tab, turn on the rule and click “Save hardening rules”.</li>
<li>Open the Test tab.</li>
<li>In the “Check PHP execution block in uploads” box, click “Check now”.</li>
<li>Go back to the Test tab and read the result, in the “Last test:” row with its date.</li>
</ol>
<p>If the rule isn&#8217;t active and saved, the button is disabled. The box shows: “Turn on and save the &#8220;Block PHP execution in wp-content/uploads&#8221; rule in the Hardening / IDS tab before you can run this test.”.</p>
<h3>What the test does</h3>
<p>The plugin writes a small test <code>.php</code> file into uploads. It requests it over HTTP, with a 10-second limit. Then it deletes it straight away, whatever happens. The file contains nothing but a check print statement.</p>
<h3>How to read the result</h3>
<ul>
<li>Green: “Block effective: the request to the test file received N.”. The number is 403 or 404.</li>
<li>Red: “WARNING: the test PHP file was EXECUTED (response N).” The rule isn&#8217;t blocking anything. The message suggests checking that <code>AllowOverride</code> allows <code>.htaccess</code> in that folder, and that there&#8217;s no more specific <code>&lt;Directory&gt;</code> block.</li>
<li>Yellow: “Unclear result (response N, body not recognised): check manually with a direct request to the site.”.</li>
<li>Blue: “Rule disabled: turn it on and save it before running the test.”.</li>
<li>Red, for errors: “Unable to determine the uploads folder.”, “Unable to write the test file to uploads (permissions?): test not run.”, or “Check request failed”, with the reason.</li>
</ul>
<p><strong>Warning:</strong> if the site can&#8217;t call itself, for instance because of a firewall, an HTTP password or a local DNS setting, the test returns an error or an unclear result. A 404 counts as a block, but it could be caused by something else. The test only checks the standard uploads folder. For a few seconds a <code>.php</code> file exists in uploads: if the block doesn&#8217;t work it could be executed, but it only contains a check print statement.</p>
<h2>Plugin file integrity</h2>
<p>This is the second part of the WordPress security test. The second box compares the MD5 hashes of the plugin&#8217;s <code>.php</code> files against the ones expected. It looks for files that are changed, missing or added. The check runs on its own once a day. The “Check now” button runs it immediately.</p>
<p>The box states a fixed limit: anyone who already has write access to the files can also rewrite the hashes or switch off the check. It&#8217;s a tamper detector, not a barrier.</p>
<h3>How to use it</h3>
<ol>
<li>Open the Test tab.</li>
<li>In the “Plugin file integrity” box, click “Check now”.</li>
<li>Read the notice: “Integrity check run: the result is in the &#8220;Plugin file integrity&#8221; box.”.</li>
<li>Reopen the Test tab and read the box.</li>
</ol>
<h3>How to read the result</h3>
<p>Green: “All N files checked match. Last check: date.”. If the reference is a snapshot, the box adds that it detects later changes, not a plugin already compromised at installation. Red: “WARNING: the plugin&#8217;s files do not match what is expected.”, with the lists “Changed”, “Missing” and “Unexpected”. Yellow: “No reference available”. In that case, reactivate the plugin.</p>
<p>The manual button doesn&#8217;t write to the activity log. Only the scheduled check does that, and only if it finds a problem or if the files return to normal after an alert. For the details, read the <a href="https://www.cisilino.com/en/?p=979">Upload monitoring and the integrity check</a> chapter.</p>
<p><strong>Warning:</strong> if you&#8217;ve edited a plugin file by hand, the red alert is normal. If you haven&#8217;t, treat the site as potentially compromised: reinstall the plugin from a trusted copy and check the rest of the installation.</p>
<h2>If something goes wrong</h2>
<p>Repeat the WordPress security test after every fix. If the PHP test returns red, the rule isn&#8217;t protecting anything. Ask your hosting provider whether <code>.htaccess</code> is enabled. If the server doesn&#8217;t read <code>.htaccess</code>, nginx for instance, the rule has no effect. Repeat the test after every fix. A 403 is the response you want to see: the page on <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/403" target="_blank" rel="noopener">status code 403</a> on MDN explains what it means.</p>
<p>Previous chapter: <a href="https://www.cisilino.com/en/?p=979">Upload monitoring and the integrity check</a>. Next chapter: <a href="https://www.cisilino.com/en/?p=981">Paranoic Hardening: security headers and the admin session</a>. For the list of chapters go back to the <a href="https://www.cisilino.com/en/?p=972">introduction to the manual</a>.</p><p>The post <a href="https://www.cisilino.com/en/2026/10/30/test-tab-checking-protections-work/">Test tab: checking the protections work</a> first appeared on <a href="https://www.cisilino.com/en/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/en/2026/10/30/test-tab-checking-protections-work/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
