Secure FTP Explorer

Modern, secure, and responsive web-based FTP client built with PHP featuring AES-256 encryption and multi-server management.

PHP MySQL TailwindCSS License
Stars Repo Size Forks Website

GitHub: 0xarchit/ftp-explorer
Live Demo: https://0xarchit.rf.gd

Features

Enterprise-Grade Security

  • AES-256-CBC Encryption: All FTP passwords are encrypted in the database using industry-standard encryption.
  • Secure Authentication: Bcrypt password hashing and hardened session management.
  • CSRF Protection: Comprehensive protection against Cross-Site Request Forgery attacks.
  • SQL Injection Prevention: Full use of PDO prepared statements for all database interactions.
  • Security Headers: Implemented HSTS, X-Frame-Options, X-XSS-Protection, and more.

Multi-Server Management

  • Multiple Accounts: Add, edit, and switch between multiple FTP accounts seamlessly.
  • Instant Switching: Connect to different servers without re-login.

File Management

  • Multi-File Upload: Upload to one or all configured servers simultaneously.
  • Bulk Actions: Delete multiple files at once with a single click.
  • File Operations: Rename, Delete, Download, and Preview files (Images, Code, Text).
  • Public Links: Generate direct public links for files (if configured).

Modern UI

  • Tailwind CSS: Built with a modern utility-first CSS framework.
  • Responsive Design: Fully optimized for both mobile and desktop devices.
  • Storage Visualization: Real-time storage usage visualization.

Installation & Setup

Prerequisites

  • PHP: 7.4 or higher
  • Database: MySQL / MariaDB
  • Web Server: Apache / Nginx
  • Extensions: openssl PHP extension

1. Clone & Upload

Clone the repository or download the source code. Upload all files to your web server's public directory (e.g., public_html or htdocs).

git clone https://github.com/0xarchit/ftp-explorer.git

2. Database Setup

  1. Create a new MySQL database.
  2. Import the schema.sql file located in the root directory.
    • This will create the necessary auth and ftp tables.

3. Configuration

  1. Open config/config.php.
  2. Update the database credentials:
    define('DB_HOST', 'your_db_host');
    define('DB_USER', 'your_db_user');
    define('DB_PASS', 'your_db_password');
    define('DB_NAME', 'your_db_name');
  3. Important: Change the ENCRYPTION_KEY to a random 32-character string for production security.

4. Default Login

Register a new account on the login screen. The first user registered can start adding FTP servers immediately.

Deploying on InfinityFree

This project is optimized for shared hosting environments like InfinityFree.

  1. Upload Files: Use the InfinityFree File Manager or an FTP client (like FileZilla) to upload the project files to the htdocs folder.
  2. Create Database: Go to the Control Panel -> MySQL Databases. Create a new database and note the Hostname, Username, and Password.
  3. Import SQL: Open phpMyAdmin (via Control Panel), select your database, and import schema.sql.
  4. Update Config: Edit config/config.php via the File Manager with the credentials from Step 2.