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

141
Visualizações
¿Cuál es una forma segura o una mejor práctica para deshabilitar un enlace o botón html según las condiciones de php?

Originalmente, se puede hacer clic en el enlace <a> en un archivo PHP HTML. Ahora necesito agregar PHP "if-else" para hacer que <a> no se pueda hacer clic en función de alguna condición. ¿Cómo puedo lograr esto de una manera segura?

 <? if (condition) : ?> <a> is clickable ( by using this.container.on('click', '.class-point-to-a-link', function (e) { e.preventDefault(); e.stopPropagation(); ) <? else: ?> probably using <span> or disable the link using css? <? endif; ?>

Tengo varios pensamientos, pero no estoy seguro de cuál es la mejor práctica o cómo lo harían ustedes.

  1. en la rama else, no usaré la etiqueta <a>, sino que usaré <span> o alguna otra etiqueta, por lo que javascript on("click"...) no encontrará el intervalo y no se activará la acción en absoluto. Pero me preocupa la seguridad de que alguien pueda inspeccionar y cambiar el intervalo a <a>, entonces el enlace funcionará.

  2. agregar algo de CSS al <a> para que no se pueda hacer clic? Tengo el mismo problema de seguridad.

  3. dentro de la parte on("click"...), agregaré la condición una vez más en función de los datos del backend. Este es el mejor método en el que puedo pensar, pero ¿hay una mejor manera de no aplicar la "condición if-else" dos veces?

Esta es una pregunta con varias preguntas pequeñas.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Es más seguro no generar enlaces en su código PHP a menos que desee que estén activos; si el enlace está en el código, pero está deshabilitado u oculto, es muy fácil encontrarlo simplemente viendo el código fuente de la página. Cualquier atacante normalmente hará esto como una de las primeras herramientas en su arsenal.

La forma más concisa de incluir/eliminar enlaces en línea en PHP es el operador ternario. Por ejemplo:

 echo ($enabled ? '<a href="https://example.com/url">' : '') . 'The text that would be inside the link.' . ($enabled ? '</a>' : '');

O si no le gusta el operador ternario, puede hacerlo de forma más larga con sentencias if :

 if ($enabled) echo '<a href="https://example.com/url">'; echo 'The text that would be inside the link.'; if ($enabled) echo '</a>';

El operador ternario a menudo mejora la concisión, pero a veces puede dificultar la legibilidad, aunque esto es una cuestión de opinión. Lo uso con moderación por este motivo.

De cualquier manera que lo haga, el usuario no solo nunca verá el enlace, sino que el enlace no estará en ninguna parte del código fuente de la página, a menos que usted quiera que lo esté.

Si existe algún riesgo de seguridad asociado con el hecho de que las personas puedan visitar ese enlace cuando usted no quiere que lo hagan, esta es la única forma en que lo implementaría. Lo mejor es suponer que cualquier usuario con intenciones maliciosas encontrará cualquier URL relevante en el código y lo escribirá manualmente. Por supuesto, no me detendría en eso, por seguridad, porque si es posible que el usuario vea cómo funciona su sitio, es decir, si el enlace a veces les aparece y pueden deducir la lógica y la estructura de su esquema de URL , también podrán descubrir cómo formar nuevas URL de forma dinámica, por lo que si hay alguna URL a la que no desea que accedan ciertas personas, supongo que alguien intentará acceder a ella e incorporar medidas de seguridad en el script para esa URL en sí. Incluso es posible que desee volverse completamente paranoico (¡lo recomiendo! ¡Los piratas informáticos son inteligentes!) .

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede agregar una clase a la etiqueta para que no se pueda hacer clic en ella

Algo como:

 # php <a class="<?php if (!$isEnabled) { echo "disabled" } ?>">Link</a> # css a.disabled { pointer-events: none; cursor: default; }
about 4 years ago · Juan Pablo Isaza 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