• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Написал скрипт, он не работает. Помогите починить.

  • Автор темы Gamlet
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Gamlet

Только начал изучать пхп, написал скрипт регистрации для одного своего сайта.
Кинул на хостинг скрипт для проверки, он показал наличие уймы ошибок. Начал исправлять, но хостинг откликается ошибкой даже на простейшие скрипты.
Помогите исправить ошибки в скрипте:

Код:
<?php
$mkakk=$_Post['login'];
$mkpass=$_Post['password'];
if (file_exists($mkakk))
{
echo "Такой аккаунт есть";
}

else
{
$mkname=$_Post['name'];
$mksite=$_Post['site'];
$mkpost=$_Post['post'];

mkdir($mkakk);

$copypass=$mkakk."/pass.pl";
$copyname=$mkakk."/name.pl";
$copysite=$mkakk."/site.pl";
$copypost=$mkakk."/post.pl";
$copymoney=$mkakk."/money.pl";

$filename=fopen ($copyname, w);
$filepass=fopen ($copypass, w);
$filesite=fopen ($copysite, w);
$filepost=fopen ($copypost, w);
$filemoney=fopen ($copymoney, w);

fwrite($filename, $mkname);
fwrite($filepass, $mkpass);
fwrite($filesite, $mksite);
fwrite($filepost, $mkpost);
fwrite($filemoney, "0");

$filegnomer=fopen ("gsites/nomer.pl", "r+");
$gnomer=fread($filegnomer, 100);
$gnomer=$gnomer+1;
fwrite("gsites/nomer.pl", $gnomer);


$copynomer=$mkakk."/nomer.pl";
$filenomer=fopen ($copynomer, w);
fwrite($filenomer, $gnomer);


$gsite="gsites/".$gnomer.".pls";
//$copynomer=$mkakk."/nomer.pl";
$filegsite=fopen ($gsite, w);
fwrite($filegsite, $mksite);

$gbalans="gsites/".$gnomer.".plb";
//$copynomer=$mkakk."/nomer.pl";
$filegbalans=fopen ($gbalans, w);
fwrite($filegbalans, "0");

$glogin="gsites/".$gnomer.".pll";
//$copynomer=$mkakk."/nomer.pl";
$fileglogin=fopen ($glogin, w);
fwrite($fileglogin, $mkakk);

echo "Аккаунт создан";

}
?>
Очень надо.
 
M

MajestiC

Сам скрипт ужасен с точки зрения безопасности... Через POST тебе можно передать всё что угодно, а твой скрипт из этих данных создает директории и т.д....

А ошибки скорее всего у тебя из-за не правильных прав на директории в которых ты пытаешься создать файлы или скопировать туда файлы.

Покопай chmod
 
V

Vadik(R)

Я конечно в php не разбираюсь, но мой совет тебе - отрабатывать твой скрипт по шагам. То есть проверить поначалу
Код:
<?php
$mkakk=$_Post['login'];
$mkpass=$_Post['password'];
if (file_exists($mkakk))
{
echo "Такой аккаунт есть";
}
?>
. Если работает, то проверить
Код:
<?php
$mkakk=$_Post['login'];
$mkpass=$_Post['password'];
if (file_exists($mkakk))
{
echo "Такой аккаунт есть";
}

else
{
$mkname=$_Post['name'];
$mksite=$_Post['site'];
$mkpost=$_Post['post'];
echo "Скрипт пока работает наормально";
}
?>
Не смотря даже не то, что результат может и не изменится, мне кажеться всё равно так ты быстрее найдёшь свою ошибку. Такая "стратегия" отладки мне сегодня очень помогла в Делфи.
 
O

olegSM

Да с безопасностью есть проблемка!
Нет проверки передаваемых параметров через метод POST !!!!!!!!
Не помешало бы использование СУБД(MySQL) с файлами много мороки да и не безопасно!
Будущее за СУБД. - во всем должен быть порядок!




--------------
 
W

w1zard

Даже если исправишь все свои ошибки в скрипте, твой сайт долго не продержится. Нет практически никаких проверок на вводимые данные, поэтому смысла от регистрации нет вообще. Это просто открытые двери для взлома сайта. Лучше найди где-нибуть нормальный скрипт регистрации или лучше используй cms. А если речь идет о учебе, то попробуй написать что-то более легкое... Регистрация - это уже функциональность более крупного приложения, а сама по себе... не вижу смысла. Одно я тебе скажу точно - не используй этот код для регистрации у себя на сайте!
 
G

Gamlet

Тема устарела. А про безопасность я и сам знаю.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!