Author: toad
Date: 2006-11-17 02:14:34 +0000 (Fri, 17 Nov 2006)
New Revision: 10964

Modified:
   trunk/plugins/Librarian/Librarian.java
Log:
HTMLEncode all dangerous content.

Modified: trunk/plugins/Librarian/Librarian.java
===================================================================
--- trunk/plugins/Librarian/Librarian.java      2006-11-17 01:26:15 UTC (rev 
10963)
+++ trunk/plugins/Librarian/Librarian.java      2006-11-17 02:14:34 UTC (rev 
10964)
@@ -14,6 +14,7 @@
 import freenet.pluginmanager.FredPluginThreadless;
 import freenet.pluginmanager.PluginHTTPException;
 import freenet.pluginmanager.PluginRespirator;
+import freenet.support.HTMLEncoder;

 public class Librarian implements FredPlugin, FredPluginHTTP, 
FredPluginThreadless {

@@ -77,6 +78,8 @@
        }

        private void appendDefaultPostFields(StringBuffer out, String search, 
String index) {
+               search = HTMLEncoder.encode(search);
+               index = HTMLEncoder.encode(index);
                out.append("Search for:<br/>");
         out.append("<form method=\"GET\"><input type=text 
value=\"").append(search).append("\" name=\"search\" size=80/><br/><br/>");
                out.append("Using the index:<br/>");
@@ -166,7 +169,7 @@
                        appendDefaultPageStart(out);
                        appendDefaultPostFields(out, search, indexuri);

-            out.append("Searching for: ").append(search).append('\n');
+                       out.append("Searching for: 
").append(HTMLEncoder.encode(search)).append('\n');

                        //String searchWords[] = search.replaceAll("%20", 
"+").split("+");
                        // Get search result
@@ -205,10 +208,13 @@
                                if (showurl.length() > 60)
                                        showurl = showurl.substring(0,10) + 
"..." + 
                                        showurl.substring(showurl.length()-45);
+                               String realurl = (o.URI.startsWith("/")?"":"/") 
+ o.URI;
+                               realurl = HTMLEncoder.encode(realurl);
+                               showurl = HTMLEncoder.encode(showurl);
                                out.append("<table width=\"100%\" 
border=1><tr><td align=center bgcolor=\"#D0D0D0\">\n");
-                out.append("  <A HREF=\"").append(o.URI.startsWith("/") ? "" : 
"/").append(o.URI).append("\" 
title=\"").append(o.URI).append("\">").append(showurl).append("</A>\n");
+                               out.append("  <A 
HREF=\"").append(realurl).append("\" 
title=\"").append(o.URI).append("\">").append(showurl).append("</A>\n");
                                out.append("</td></tr><tr><td align=left>\n");
-                out.append("<pre>").append(o.descr).append("</pre>\n");
+                               
out.append("<pre>").append(HTMLEncoder.encode(o.descr)).append("</pre>\n");
                                out.append("</td></tr></table>\n");
                                results++;
                        }


Reply via email to