Just to be clear – the public_files_dir and files_dir are two different directories. The files_dirmust be placed outside the web root, or protected from direct access. The public_files_dir, on the other hand, should be placed inside the web root.
The public_files_dir is used for banner images, public CSS, and other elements that need to be accessible directly via the web server. It doesn’t make sense to move it outside web root. If you want to harden the installation, you can configure your web server to limit the types of files that can be accessed there e.g. to .css, .jpg, and .gif (off the top of my head).
OJS provides safety for third-party content uploaded into the public_files_directory by limiting file types (and extensions) that can be uploaded there.
Regards,
Alec Smecher
Public Knowledge Project Team