相关疑难解决方法(0)

如何防止 HTML textarea 转换诸如 > 之类的特殊符号?

HTML<textarea>环境转换表示特殊符号的字符序列,例如

&gt;
Run Code Online (Sandbox Code Playgroud)

进入相应的符号:

>
Run Code Online (Sandbox Code Playgroud)

但是,我正在尝试构建一个代码编辑器,它应该以逐字逐字的方式接收用户输入。问题是,如果用户&gt;在编辑器中键入并编译代码,<textarea>则重新加载并在此过程中转换字符。

这是一个 MWE:

<!doctype html>
<html>
  <head>
  </head>  

<body>
    <textarea>
        &lsquo;
        &rsquo;
        &sbquo;
        &ldquo;
        &rdquo;
        &bdquo;
        &dagger;
        &Dagger;
    </textarea>
</html>
Run Code Online (Sandbox Code Playgroud)

当页面加载时,textarea 编辑器中的所有内容都会被转换。

转义所有&符号可能是一种选择(如此处建议:如何在 textarea 中显示 <html>),但感觉好像这不是真正正确的做法。(难道我不需要考虑更多的特殊情况,例如 HTML 标签等吗??)

是否有“推荐”的方式在 HTML 中实现代码编辑器?

我试过CodeMirror,但问题仍然存在。

html javascript

2
推荐指数
1
解决办法
1470
查看次数

java 是否有将尖括号转换为实体代码的内置方法?

可能的重复:
在 Java 中转义 HTML 的推荐方法在 Java
中用 HTML 实体替换字符

我有一些 java 代码可以将包含尖括号的文本写入数据库;该文本显示在网页上。

与其将我的java代码改成充满实体代码,我想知道我是否可以保留像“ <test>”这样的常量并使用标准库函数来生成基于实体的字符串“ &lt;test&gt;”?

java

1
推荐指数
1
解决办法
1004
查看次数

如何验证命令行参数中的用户输入以提高安全性?

我正在通过命令行参数从用户String进入Java程序。

问题是我应该执行哪种检查以防止可能的攻击和漏洞?

我不是安全领域的专家,但据我所知

  • C中,用户指定的行太长且处理不当可能导致缓冲区溢出
  • 在包含`字符且处理不当的PHP行中,可能会导致SQL注入

目前,我无法考虑使用任何String正则表达式进行检查的任何特定格式。它可以是任意的,但是如果看起来有害,我想立即退出。该字符串可能会发送到具有网络的Java服务器,在那里可能用于SQL查询。

if (args.length > 0) {
    String arg0 = args[0];
    if (!isValidString(arg0)){
        System.exit(1);
    }
}

public boolean isValidString (String str) {
    if (str == null) return false;

    //TODO: many more checks here

    return true;
}
Run Code Online (Sandbox Code Playgroud)

我确信Java比C或早期的PHP安全得多,但是我应该注意些什么呢?

java security console command-line-arguments

1
推荐指数
1
解决办法
1111
查看次数

删除html标签

我有一位教授要求我们删除HTML标签(<和>中的任何内容),而不使用removeAll方法.

我目前有这个:

public static void main(String[] args)
        throws FileNotFoundException {
    Scanner input = new Scanner(new File("src/HTML_1.txt"));
    while (input.hasNext())
    {
        String html = input.next();
        System.out.println(stripHtmlTags(html));
    }

}

static String stripHtmlTags(String html)
{
    int i;
    String[] str = html.split("");
    String s = "";
    boolean tag = false;

    for (i = html.indexOf("<"); i < html.indexOf(">"); i++) 
    {
        tag = true;
    }

    if (!tag) 
    {
        for (i = 0; i < str.length; i++) 
        {
            s += str[i];
        }
    }
    return s;   
}
Run Code Online (Sandbox Code Playgroud)

这是文件内部的内容:

<html> …
Run Code Online (Sandbox Code Playgroud)

java arrays string

1
推荐指数
1
解决办法
1505
查看次数