Interesante.
Antes que nada (y sin afán de sonar a spam) te recomiendo que mires éste proyecto :)
https://github.com/dannegm/picboard http://dannegm.pro/picboard/
(Obviamente uno siempre tiene necesidades diferentes)
Respondiendo a tus preguntas.
¿Como asegurarlo contra ataques hacking?.
Diría un hacker amigo mío
Cita: Apaga tu ordenador, desconéctalo y entiérralo 5 metros bajo la tierra en un lugar que nadie conozca
El primer consejo que te puedo dar es que definas los puntos más débiles que tienes; supongo que en éste caso hablas sobre el subir archivos maliciosos.
El ejemplo que pone lo explica todo, simplemente debes identificar el tipo de archivo que estás subiendo (image/png, image/gif, image/jpg.. etc). Aunque hay muchísimas formas mas de prevenir un ataque; pero repito, primero evalúa tu sistema.
¿Como crear un sistema que permita al usuario que sube la imagen recortar solo una parte de esta imagen para captar solo un detalle de la imagen, muy útil para cuando se sube una foto panoramica y se pretende exibir en un thumb cuadrado?.
Esto es sencillo, y depende mucho tu servidor. De entrada te recomendaría trabajar con la librería GD y la función imagecopy(); aunque por otro lado, si puedes instalar extensiones php a tu gusto, puedes mirar la librería imagik...
Para el lado del cliente, basta con googlear un plugin para hacer el crop, o sieplemente hacerlo tu mismo (basta con tomar las coordenadas que quieres recortar y el tamaño del thumbnail).
De nuevo te recomendaría mirar el proyecto que mencioné mas arriba (ya que viene todo eso resuelto y muy entendible [creo]), y también te sugeriría listar las herramientas con las que cuentas (conocimientos, servidores, lenguajes, fraeworks, ideas, un sistema ya hecho, etc).
Saludos :)