10.请指出下面代码中的错误 char *encode_html(char *html_string) { int i, dst_index; if (!html_string) return NULL; char *dst_buf = (char *)malloc(4 * sizeof (char) * MAX_SIZE); if (MAX_SIZE <= strlen (html_string)) { LOGE ("user string too long, die evil hacker!"); return NULL; } dst_index = 0; for (i =0; i< strlen(html_string);i++) { if ('&'== html_string[i]) { dst_buf[dst_index++] = '&'; dst_buf[dst_index++] = 'a'; dst_buf[dst_index++] = 'm'; dst_buf[dst_index++] = 'p'; dst_buf[dst_index++] = 'j'; } else if ('<' ==html_string[i]){ /* < Wi11 encoded to &1t; */ } /* other special character */ else dst_buf[dst_index++] = html_string[i]; } return dst_buf; }
时间: 2023-12-06 18:42:13 浏览: 55
cms.rar_JSP内容管理_cms_cms jsp_cms系统_htmlencode.java
代码中存在一个问题,即当 html_string 中出现 '<' 字符时,代码没有将其进行转义处理,导致在 HTML 中可能会出现问题。需要在对 '<' 进行处理时加上转义符。具体来说,可以在代码中添加以下代码:
else if ('<' == html_string[i]) {
dst_buf[dst_index++] = '&';
dst_buf[dst_index++] = 'l';
dst_buf[dst_index++] = 't';
dst_buf[dst_index++] = ';';
}
阅读全文