¿Cuál es la mejor defensa contra secuestro JSON ?
¿Puede alguien enumerar las defensas estándar y explicar sus fortalezas y debilidades? Aquí hay algunas defensas que he visto sugeridas:
- Si la respuesta JSON contiene datos confidenciales / no públicos, solo envíe la respuesta si la solicitud está autenticada (por ejemplo, viene con cookies que indican una sesión autenticada).
- Si los datos JSON contienen algo confidencial o no público, hospédelos en una URL secreta e indiscutible (por ejemplo, una URL que contenga un número aleatorio de calidad criptográfica de 128 bits) y solo comparta esta URL secreta con usuarios / clientes autorizados para ver los datos.
- Coloque
while(1);
al inicio de la respuesta JSON, y haga que el cliente la elimine antes de analizar JSON. - Haga que el cliente envíe solicitudes de datos JSON como POST (no un GET), y haga que el servidor ignore las solicitudes GET para datos JSON.
¿Todos estos son seguros? ¿Hay alguna razón para elegir uno de estos sobre los otros? ¿Hay otras defensas que me faltan?