Простую альтернативу этой проблеме можно решить, предоставив соответствующие разрешения в самой базе данных. Например: если вы используете базу данных mysql, введите в базу данных через терминал или предоставленный интерфейс и просто следуйте этой команде:
GRANT SELECT, INSERT, DELETE ON database TO username@'localhost' IDENTIFIED BY 'password';
Это ограничит пользователя ограничиться только указанным запросом только. Удалите разрешение удаления, и поэтому данные никогда не будут удалены из запроса, запущенного с php-страницы. Второе, что нужно сделать, это очистить привилегии, чтобы mysql обновлял разрешения и обновления.
FLUSH PRIVILEGES;
Дополнительная информация о flush .
To см. текущие привилегии для пользователя, вызывают следующий запрос.
select * from mysql.user where User='username';
Подробнее о GRANT .
Вот различие:
Вы, вероятно, не найдете библиотеки для "FTP по SSH", потому что обычно туннель создан путем выполнения команды SSH, и как только это настраивается, клиенты и серверы не должны знать о туннеле; они просто открытые порты и передают данные они способ, которым они были бы без туннеля.
BTW, еще одна опция для Вас могла бы быть FTP по SSL (FTPS) , который поддерживается.NET. (См. http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx .)
Я использовал SharpSSH много лет, и он отлично работает. Хотя в течение некоторого времени он не претерпевал никаких изменений, исходный код легко понять и с ним легко работать. Я без проблем внес изменения и перекомпилировал его для своих собственных проектов, хотя он работает нормально, как есть, без необходимости чего-либо из этого.
Если вам не нужно делать ничего особенного, вы также можете написать свою собственную .NET-оболочку для клиента PSFTP.EXE PuTTY с очень минимальным кодом.
Хотя я никогда не использовал SFTP-библиотеку Грега Финзера, я знаю его лично и твердо уверен, что у него есть качественный продукт, если вам нужно что-то активно разрабатываемое и надежное. Но что касается простых вещей, я добился большого успеха с бесплатными вариантами, о которых я упоминал.
SFTP является своим собственным протоколом. FTP по SSH использует FTP, как только Вы соединены через SSH.
FTP по SSH является простым протоколом FTP, туннелировавшим через SSH. SFTP является механизмом передачи файлов, предлагаемым SSH, и это - совершенно другой протокол. Я не видел, что кто-либо использует FTP по SSH.
SFTP - это еще один протокол, работающий через SSH - расширение SSH, если хотите. Люди склонны использовать SFTP вместо туннелирования FTP через SSH.
Для полной поддержки SFTP в .NET попробуйте edtFTPnet / PRO . Это уже давно поддерживается множеством различных серверов SFTP.
В основном, существуют следующие протоколы передачи файлов:
FTP - простой старый протокол FTP, который существует с 1970-х годов. Аббревиатура означает «Протокол передачи файлов». Обычно он работает через TCP-порт 21.
SFTP - другой, совершенно другой протокол передачи файлов, не имеющий ничего общего с FTP. SFTP работает через сеанс SSH, обычно через TCP-порт 22. Он существует с конца 1990-х годов. Акроним на самом деле означает «протокол передачи файлов SSH».
FTP через SSH - 1) возможный, но крайне редкий пример протокола FTP, туннелированного через канал SSH 2) неправильно назван SFTP
(подробности см. В « ] Безопасный FTP, FTP / SSL, SFTP, FTPS, FTP, SCP ... В чем разница? "
Я только что создал библиотеку .NET SFTP . Одна из вещей, которую я узнал в процессе, - это то, чем FTP отличается от SFTP. Фактически вы общаетесь с SSH-сервером, а не с FTP-сервером. Дело не только в протоколе, это совершенно другие команды, которые вы отправляете на SSH-сервер.
Вот ссылка на мою библиотеку.