Итак, мой сценарий позволяет людям писать контент в файл .txt и сохранять его на сервере. В настоящее время они могут писать все, что хотят. Это метод, который я использую для сохранения файла.Есть ли какие-либо уязвимости здесь? (PHP)
<?php
$victim = $_POST['victim'];
$user = $_POST['user'];
$comment = $_POST['comment'];
$IP = $_POST['IP'];
$data = "$victim | $user | $comment | $IP\n";
//open the file and choose the mode
$fh = fopen($victim.".txt", "a");
fwrite($fh, $data); //close the file fclose($fh);
print "User Submitted";
echo "URL is mysite.com/".$victim.".txt"
?>
Мой вопрос: есть ли что-нибудь, что они могли бы написать, что может повредить работу моего сервера?
+1 Хороший улов. Это серьезная проблема! –
Есть ли способ записать эту строку для подозрительных символов, а если есть, отмените процесс? –
@JamesPaterson: не доверяйте пользователю ввод вообще. Назначьте каждому файлу числовой идентификатор и сохраните его в папке. Кроме того, почему бы вам просто не использовать базу данных? – Blender