避免用户能够构造输入来重定向服务器资源,当不能完全避免时,应该对非受信用户的输入做验证;或者创建一份安全字符串列表,限制用户只能输入该列表中的数据。
    例如:在下面的代码片段中,程序接收不可信赖的数据,先判断其值是否合理,再将它的内容作为服务端的转发路径。

    1. String path = request.getParameter("path");
    2. //判断路径是否合理
    3. if(isSafePath(path)){
    4. request.getRequestDispatcher(path).forward(request, response);
    5. }