En teoría: no. Si está seguro de que solo ellos verán esta página, permita que escriban lo que quieran.
El problema es que hay muchas maneras en que pueden hacer que otras personas vean esa página, formas en que no la controlas. Incluso pueden abrir la página en la computadora de un compañero de trabajo y hacer que la miren. Es innegablemente un vector de ataque extra.
Ejemplo: a pastebin sin almacenamiento persistente; publicas, obtienes el resultado, eso es todo. Se puede insertar un script que agregue discretamente un botón "donar" para vincularlo a su cuenta de PayPal. Póngalo en la computadora de la gente lo suficiente, espero que alguien done, ...
Estoy de acuerdo en que este no es el más impactante y realista de los ejemplos. Sin embargo, una vez que tiene que defender una decisión relacionada con la seguridad con "eso es posible pero tampoco suena malo", usted sabe que ha cruzado una línea determinada.
De lo contrario, no estoy de acuerdo con respuestas como "nunca confíes en la entrada del usuario". Esa afirmación no tiene sentido sin contexto. El punto es cómo definir la entrada del usuario, que fue la pregunta completa. ¿Confiar en cómo, semánticamente? Sintácticamente? A qué nivel; solo tamaño? ¿HTML correcto? ¿Subconjunto de caracteres Unicode? La respuesta depende de la situación. Un servidor web simple "no confía en la entrada del usuario", pero muchos sitios se piratean hoy, porque los límites de "entrada del usuario" dependen de su perspectiva.
En pocas palabras: evite que cualquier persona tenga influencia sobre su producto a menos que sea claro para un consumidor soñoliento y no técnico qué y quién.
Eso descarta casi todos los JS y HTML desde el primer momento.
P.S .: En mi opinión, el PO merece crédito por hacer esta pregunta en primer lugar. "No confíes en tus usuarios" no es la regla de oro del desarrollo de software. Es una mala regla general porque es demasiado destructiva; desvirtúa las sutilezas en la definición de la frontera de interacción aceptable entre su producto y el mundo exterior. Suena como el final de una lluvia de ideas, mientras que debería comenzar una.
En esencia, el desarrollo de software consiste en crear una interfaz clara desde y hacia su aplicación. Todo dentro de esa interfaz es Implementación, todo lo que está fuera es Seguridad. Hacer que un programa haga las cosas que quiere es tan preocupante que uno se olvida fácilmente de hacer que no haga nada más.
Imagine la aplicación que intenta crear como una bella foto o foto. Con el software, intentas aproximar esa imagen. Utiliza una especificación como boceto, por lo que ya aquí, cuanto más descuidada sea su especificación, más borroso será su boceto. Sin embargo, el perfil de su aplicación ideal es fino como una navaja. Intenta recrear esa imagen con código. Cuidadosamente llenas el contorno de tu boceto. En el núcleo, esto es fácil. Use pinceles anchos: boceto borroso o no, esta parte claramente necesita coloración. En los bordes, se vuelve más sutil. Esto es cuando te das cuenta de que tu dibujo no es perfecto. Si vas demasiado lejos, tu programa comienza a hacer cosas que no quieres, y algunas podrían ser muy malas.
Cuando ve una línea borrosa, puede hacer dos cosas: mire más de cerca su imagen ideal e intente refinar su boceto, o simplemente deje de colorear. Si haces esto último, es probable que no vayas demasiado lejos. Pero también solo hará una aproximación aproximada de su programa ideal, en el mejor de los casos. ¡Y aún podrías cruzar la línea accidentalmente! Simplemente porque no estás seguro de dónde está.
Tienes la bendición de mirar más de cerca esa línea borrosa e intentar redefinirla. Cuanto más cerca esté del límite, más seguro estará de que está, y menos probabilidades tendrá de cruzarlo.
De todos modos, en mi opinión, esta pregunta no era de seguridad, sino de diseño: ¿cuáles son los límites de su aplicación y cómo los refleja su implementación?
Si la respuesta es "nunca confíe en la entrada del usuario", su boceto es borroso.
(y si no está de acuerdo:?!. ¿Y si funciona para OP "testxsshere.com" boom jaque mate)
(alguien debería registrarse testxsshere.com)