# Secure FTP Explorer

PHP MySQL TailwindCSS License
Stars Repo Size Forks Website

GitHub: https://github.com/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.