What's the best practice to set html attribute via PHP?

后端 未结 4 829
遥遥无期
遥遥无期 2020-11-27 06:07

When doing this job in PHP,one may meet this kind of issue:

\">...

The problem is that if

相关标签:
4条回答
  • 2020-11-27 06:33

    To address your edit [Edit: that you have removed meanwhile]: When you place dynamically JavaScript onto your site, you should before know quite well, what it would look like. Else you open the door widely for XSS attacks. That doesn't mean you have to know every quotation mark, but you should know enough to decide how to embed it at the line where you finally output it in the HTML file.

    Beyond that,

    <a onclick="func(&apos;l&apos;)">
    

    works exactly like

    <a onclick="func('l')">
    
    0 讨论(0)
  • 2020-11-27 06:39

    You always want to HTML-encode things inside HTML attributes, which you can do with htmlspecialchars:

    <span title="<?php echo htmlspecialchars($variable); ?>">
    

    You probably want to set the second parameter ($quote_style) to ENT_QUOTES.

    The only potential risk is that $variable may already be encoded, so you may want to set the last parameter ($double_encode) to false.

    0 讨论(0)
  • 2020-11-27 06:42

    Well, before you output any text into HTML you should escape it using htmlspecialchars(). So just make sure (double) quote is correctly changed.

    Pay attention to the second parameter of that function.

    0 讨论(0)
  • 2020-11-27 06:46

    The Bat tool has a StringTool::htmlAttributes ( $arrayOfAttributes ) method that does the job too.

    https://github.com/lingtalfi/Bat/blob/master/StringTool.php

    0 讨论(0)
提交回复
热议问题