#
Secure FTP Explorer
GitHub: https://github.com/0xarchit/ftp-explorer
Live Demo: https://0xarchit.rf.gd
Tip
Quick Start: Clone the repository, configure your database, and start managing files securely in minutes.
#
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:
opensslPHP 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
- Create a new MySQL database.
- Import the
schema.sqlfile located in the root directory.- This will create the necessary
authandftptables.
- This will create the necessary
#
3. Configuration
- Open
config/config.php. 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');- Important: Change the
ENCRYPTION_KEYto 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.
- Upload Files: Use the InfinityFree File Manager or an FTP client (like FileZilla) to upload the project files to the
htdocsfolder. - Create Database: Go to the Control Panel -> MySQL Databases. Create a new database and note the Hostname, Username, and Password.
- Import SQL: Open phpMyAdmin (via Control Panel), select your database, and import
schema.sql. - Update Config: Edit
config/config.phpvia the File Manager with the credentials from Step 2.
Warning
Security Note: This application uses AES-256-CBC to encrypt FTP passwords. However, the decryption key is stored in config/config.php. Ensure this file is protected and not accessible via the web browser.