Hola
Como bien dice Xianto este código lo único que hace es obligar al navegador a abrir la ventana de descarga.
Si lo que quieres es que no puedan localizar tus archivos puedes hacerlo de dos formas muy fáciles:
Primera opción:
1. Identificar al usuario.
2. Cargar en memoria el archivo, con fopen y fread por ejemplo.
3. Mandar las cabeceras ya citadas.
4. Enviar el contenido del archivo que tenemos cargado en memoria
De esta forma es imposible que sepan donde esta el archivo, el problema es que si son archivos muy grandes vas a saturar la memoria del servidor.
Segunda opción:
1. Identificar al usuario.
2. Copiar el archivo que se va a descargar en una carpeta temporal. Te aconsejo que utilices la funcion tmpfile() para generar un archivo con nombre único para no sobre escribir el que este descargando otro usuario.
3. Mandas las cabeceras.
4. Envias el archivo desde el directorio temporal.
5. Borras el archivo del directorio temporal, con lo que ya no es accesible para nadie.