Mega Code Archive

 
Categories / Java / Servlets
 

Filter message string for characters that are sensitive in HTML

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /**  * HTML filter utility.  *  * @author Craig R. McClanahan  * @author Tim Tye  * @version $Revision: 467217 $ $Date: 2006-10-24 05:14:34 +0200 (mar., 24 oct. 2006) $  */ public final class HTMLFilter {     /**      * Filter the specified message string for characters that are sensitive      * in HTML.  This avoids potential attacks caused by including JavaScript      * codes in the request URL that is often reported in error messages.      *      * @param message The message string to be filtered      */     public static String filter(String message) {         if (message == null)             return (null);         char content[] = new char[message.length()];         message.getChars(0, message.length(), content, 0);         StringBuffer result = new StringBuffer(content.length + 50);         for (int i = 0; i < content.length; i++) {             switch (content[i]) {             case '<':                 result.append("&lt;");                 break;             case '>':                 result.append("&gt;");                 break;             case '&':                 result.append("&amp;");                 break;             case '"':                 result.append("&quot;");                 break;             default:                 result.append(content[i]);             }         }         return (result.toString());     } }