VMiloykov
Well-Known Member
1. Пишете подреден и качествен код. PHP е бърз и мощен език.
2. Качвайте файловете/папките си не в public_html/www/htdocs, а извън тази директория.
3. В public_html качвате само един index.php за рутиране на цялата ви система и един файл, които може да направите и с cronjobs да се изпълнява през някакво време и да оправя дадени права на дадени директории.
4. Правите правата на всички директории, които ползвате и са си ваши, които са извън public_html на 0544, а на всички файлове, които са в тях на 0444. Това става като сложите в public_html един файл с примерно име chmodes.php и в него пишете:
Този скрипт го отваряте с браузъра си за да се изпълни и той ще направи includes папката с права 0544, тоест четене и изпълнение само за root потребителя, и само четене от всички други акаунти и скриптове. Което не вреди на процеса на дадена система или скрипт.
5. Само това обаче не стига, затова трябва да оправите и правата на public_html, защото ако някой се добере до паролата ви на root акаунта, ще може да си качи в public_html друг скрипт и да си го изпълни без проблеми. Като тоя скрипт може да е всякакъв, включително такъв да оправи правата на другите директории и я да гепи файлове, я да направи някаква мизерия. Затова трябва да ограничим и public_html
6. Това как ще стане? Ще стане по следния начин - махате последния ред и пишете:
7. Следователно вместо само chmod("../public_html/", 0555); ние трябва да сложим друга логика, която е:
По този начини с този скрипт, след като изпълним през browser-a скрипта, той ще направи правата на public_html веднага на 0555, а след 10 минути или повече, като го изпълним отново ще ги върне на 0755 (default). Тия 10 минути всеки може да си ги промени примерно на 24 часа на еди колко си часа и така нататък. Но също може да пусне един cronjobs, който да изпълнява на някакво време подобен скрипт. Примерно на всеки 24 часа да имате по 5-10 минути да можете да си имате права за качване, редактиране, изтриване и т.н. Да сте в час дали всичко е наред, може и да качвате ъпдейти и така нататък.
Автор на урока: Георги Янев
2. Качвайте файловете/папките си не в public_html/www/htdocs, а извън тази директория.
3. В public_html качвате само един index.php за рутиране на цялата ви система и един файл, които може да направите и с cronjobs да се изпълнява през някакво време и да оправя дадени права на дадени директории.
4. Правите правата на всички директории, които ползвате и са си ваши, които са извън public_html на 0544, а на всички файлове, които са в тях на 0444. Това става като сложите в public_html един файл с примерно име chmodes.php и в него пишете:
PHP:
<?php
function recursiveChmod ($path, $filePerm=0444, $dirPerm=0544) {
// Check if the path exists
if (!file_exists($path)) {
return(false);
}
// See whether this is a file
if (is_file($path)) {
// Chmod the file with our given filepermissions
chmod($path, $filePerm);
// If this is a directory...
} elseif (is_dir($path)) {
// Then get an array of the contents
$foldersAndFiles = scandir($path);
// Remove "." and ".." from the list
$entries = array_slice($foldersAndFiles, 2);
// Parse every result...
foreach ($entries as $entry) {
// And call this function again recursively, with the same permissions
recursiveChmod($path."/".$entry, $filePerm, $dirPerm);
}
// When we are done with the contents of the directory, we chmod the directory itself
chmod($path, $dirPerm);
}
// Everything seemed to work out well, return true
return(true);
}
recursiveChmod('../includes/');
Този скрипт го отваряте с браузъра си за да се изпълни и той ще направи includes папката с права 0544, тоест четене и изпълнение само за root потребителя, и само четене от всички други акаунти и скриптове. Което не вреди на процеса на дадена система или скрипт.
5. Само това обаче не стига, затова трябва да оправите и правата на public_html, защото ако някой се добере до паролата ви на root акаунта, ще може да си качи в public_html друг скрипт и да си го изпълни без проблеми. Като тоя скрипт може да е всякакъв, включително такъв да оправи правата на другите директории и я да гепи файлове, я да направи някаква мизерия. Затова трябва да ограничим и public_html
6. Това как ще стане? Ще стане по следния начин - махате последния ред и пишете:
PHP:
chmod("../public_html/", 0555);
7. Следователно вместо само chmod("../public_html/", 0555); ние трябва да сложим друга логика, която е:
PHP:
$time = time();
if($time >= 1366392161 + (60 * 10)) {
chmod('../public_html/',0755);
} else {
chmod('../public_html/',0555);
}
По този начини с този скрипт, след като изпълним през browser-a скрипта, той ще направи правата на public_html веднага на 0555, а след 10 минути или повече, като го изпълним отново ще ги върне на 0755 (default). Тия 10 минути всеки може да си ги промени примерно на 24 часа на еди колко си часа и така нататък. Но също може да пусне един cronjobs, който да изпълнява на някакво време подобен скрипт. Примерно на всеки 24 часа да имате по 5-10 минути да можете да си имате права за качване, редактиране, изтриване и т.н. Да сте в час дали всичко е наред, може и да качвате ъпдейти и така нататък.
Автор на урока: Георги Янев