Hay algunas cosas que vienen a mi mente aquí.
Limite los sitios a los que se puede acceder
En el mejor de los casos, puede crear una lista blanca de sitios aprobados desde donde se pueden importar los datos. Luego puede verificar la URL ingresada en su lista y asumir que es probable que sea válida.
Si eso no es posible, ciertas direcciones deben estar en la lista negra (piense en localhost, 0.0.0.0, ..). Especialmente las direcciones locales (IPv4 e IPv6) podrían usarse para escanear puertos del servidor para acceder a servicios que solo están disponibles desde la máquina local.
Tal vez hay un panel de administración accesible desde el localhost. O un sistema de base de datos que se ejecuta localmente en un puerto determinado al que se puede acceder.
Limitar el esquema de URL
Asegúrese de que solo se puedan usar 'http: //' y 'https: //' en las URL proporcionadas. Otro esquema que podría ser utilizado por un atacante es, por ejemplo, 'file: //' para cargar un archivo local desde su servidor. Otros esquemas como por ejemplo 'datos' o 'ftp' también pueden usarse para iniciar un comportamiento no deseado.
Solicitudes salientes con límite de velocidad
Para evitar un gran número de solicitudes salientes a otros sitios, se debe aplicar un límite de velocidad estricto. Para un usuario, un enfriamiento de diez segundos no debería ser un problema. Si alguien deseara usar su servicio para ocultar su identidad mientras hacía otro servicio con una demora de diez segundos, esto dejaría de ser efectivo.
Incluir un encabezado de contacto de abuso
Puede incluir un encabezado con información sobre cómo los administradores pueden comunicarse con usted si se sienten abusados por las solicitudes enviadas por su servicio. Eso hace que sea razonablemente fácil detener cualquier comportamiento equivocado al contactarlo.
No ejecutar scripts
Recomendaría no interpretar ningún script como el código JavaScript en el sitio que solicita.
Escape de la URL
Dependiendo de la herramienta (si la hubiera) que use para consultar el contenido del sitio, asegúrese de evitar la URL para evitar cualquier tipo de contenido o ataques de inyección de comandos en su servidor.