Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

256
Visualizações
mostrar html como texto

En mi juego, cambié la lista de jugadores de lienzo a html, por lo que apareció una vulnerabilidad de que cualquier jugador puede darse un nombre en el que puede insertar código js, por ejemplo, <script>alert(1);</script> que funcionará para todos los jugadores cuando el jugador aparezca en la lista de jugadores. La pregunta es, ¿cómo hacer que html no funcione y todo lo que ingrese el jugador se muestre como texto? La pre en html no me ayudó :(

El código para agregar un jugador a la lista de jugadores:

 const drawLeaderboard = function() { if (!settings.showLeaderboard || !leaderboard.items) return wjQuery('#leaderboard').css('display', 'none'); else wjQuery('#leaderboard').css('display', 'block'); let text, vip = false, isMe = false; const texts = { all: '', emoji: '' }; for (let i = 0; i < leaderboard.items.length; i++) { if (leaderboard.type == 'text') text = leaderboard.items[i]; else text = leaderboard.items[i].name, isMe = leaderboard.items[i].me, vip = leaderboard.items[i].vip; texts.all += `<div class="item"${isMe ? 'style="color: #faa;"' : ''}>${text.trim()}</div>`; texts.emoji += `<div class="item">${vip ? '👑' : ''}</div>`; } wjQuery('#leaderboard > .content > .items').html(texts.all); wjQuery('#leaderboard > .content > .emoji').html(texts.emoji); }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Ya hay buenas respuestas sobre esto, por ejemplo, este ;

Robé la respuesta para ahorrarte un clic ;-)

Hay respuestas adicionales en este hilo que también pueden resultarle interesantes.

 var entityMap = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;', '/': '&#x2F;', '`': '&#x60;', '=': '&#x3D;' }; function escapeHtml (string) { return String(string).replace(/[&<>"'`=\/]/g, function (s) { return entityMap[s]; }); }
over 4 years ago · Santiago Trujillo Relatório

0

Simplemente podría reemplazar todas las etiquetas con una cadena vacía. Mira este ejemplo:

 const regex = /<\/?[a-zA-Z]+>/g; const input = document.querySelector('input'); const newValue = input.value.replaceAll(regex, ''); console.log(newValue);
 <input type="text" value="My name is ... <script>alert('Trying to hack...');</script>">

over 4 years ago · Santiago Trujillo Relatório

0

Este es un ejemplo de secuencias de comandos entre sitios. podemos evitarlo codificando entidades HTML usando expresiones regulares.

 var encodedStr = $('#inputText').replace(/[\u00A0-\u9999<>\&]/g, function(i) { return '&#'+i.charCodeAt(0)+';'; });

esta cadena codificada si se muestra en html es la misma que los caracteres pero no se evaluaría como javascript

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda