summaryrefslogtreecommitdiff
path: root/src/tests/deny_writable_execution_simulation.phpt
diff options
context:
space:
mode:
authorSebastien Blot2017-09-20 10:11:01 +0200
committerSebastien Blot2017-09-20 10:11:01 +0200
commit868f96c759b6650d88ff9f4fbc5c048302134248 (patch)
treec0de0af318bf77a8959164ef11aeeeb2b7bab294 /src/tests/deny_writable_execution_simulation.phpt
Initial import
Diffstat (limited to 'src/tests/deny_writable_execution_simulation.phpt')
-rw-r--r--src/tests/deny_writable_execution_simulation.phpt45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/tests/deny_writable_execution_simulation.phpt b/src/tests/deny_writable_execution_simulation.phpt
new file mode 100644
index 0000000..3278be8
--- /dev/null
+++ b/src/tests/deny_writable_execution_simulation.phpt
@@ -0,0 +1,45 @@
1--TEST--
2Readonly execution attempt (simulation mode)
3--SKIPIF--
4<?php
5if (!extension_loaded("snuffleupagus")) print "skip";
6
7$filename = __DIR__ . '/test.txt';
8
9@unlink($filename);
10
11file_put_contents($filename, 'a');
12chmod($filename, 0400);
13
14if (is_writable($filename)) print "skip";;
15@unlink($filename);
16 ?>
17--INI--
18sp.configuration_file={PWD}/config/config_disable_writable_simulation.ini
19--FILE--
20<?php
21$dir = __DIR__;
22
23// just in case
24@unlink("$dir/non_writable_file.txt");
25@unlink("$dir/writable_file.txt");
26
27file_put_contents("$dir/writable_file.txt", '<?php echo "Code execution within a writable file.\n";');
28file_put_contents("$dir/non_writable_file.txt", '<?php echo "Code execution within a non-writable file.\n";');
29chmod("$dir/writable_file.txt", 0777);
30chmod("$dir/non_writable_file.txt", 0400);
31include "$dir/writable_file.txt";
32include "$dir/non_writable_file.txt";
33?>
34--EXPECTF--
35[snuffleupagus][0.0.0.0][readonly_exec][notice] Attempted execution of a writable file (%a/writable_file.txt).
36Code execution within a writable file.
37Code execution within a non-writable file.
38--CLEAN--
39<?php
40$dir = __DIR__;
41chmod("$dir/non_writable_file.txt", 0777);
42chmod("$dir/writable_file.txt", 0777);
43unlink("$dir/non_writable_file.txt");
44unlink("$dir/writable_file.txt");
45?> \ No newline at end of file