/*******************************************************************************
* Copyright (c) 2011 Subgraph.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Subgraph - initial API and implementation
******************************************************************************/
package com.subgraph.vega.api.scanner;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.HttpUriRequest;
import com.subgraph.vega.api.http.requests.IHttpResponse;
import com.subgraph.vega.api.http.requests.IPageFingerprint;
import com.subgraph.vega.api.model.web.IWebPath;
import com.subgraph.vega.api.scanner.modules.IBasicModuleScript;
public interface IPathState {
IPathState getParentState();
boolean isParametric();
boolean doInjectionChecks();
boolean isDone();
void setFailed404Detection();
boolean hasFailed404Detection();
boolean has404Fingerprints();
boolean has404FingerprintMatching(IPageFingerprint fp);
boolean hasParent404FingerprintMatchingThis();
boolean hasParent404Fingerprint(IPageFingerprint fp);
void clear404Fingerprints();
boolean add404Fingerprint(IPageFingerprint fp);
void setDone();
IWebPath getPath();
void setResponseVaries();
boolean getResponseVaries();
NameValuePair getFuzzableParameter();
IInjectionModuleContext createModuleContext();
void setUnknownFingerprint(IPageFingerprint fp);
IPageFingerprint getPathFingerprint();
IPageFingerprint getUnknownFingerprint();
void maybeAddParameters(List<NameValuePair> parameters);
void maybeAddPostParameters(List<NameValuePair> parameters);
int allocateXssId();
String createXssTag(int xssId);
String createXssTag(String prefix, int xssId);
void registerXssRequest(HttpUriRequest request, int xssId);
HttpUriRequest getXssRequest(int xssId, int scanId);
HttpUriRequest createAlteredRequest(String value, boolean append);
HttpUriRequest createRequest();
void setResponse(IHttpResponse response);
IHttpResponse getResponse();
void unlockChildren();
IPathState get404Parent();
void setPageMissing();
boolean matchesPathFingerprint(IPageFingerprint fp);
void setBogusParameter();
boolean isBogusParameter();
void setSureDirectory();
boolean isSureDirectory();
boolean isRootPath();
List<IBasicModuleScript> getInjectionModules();
void setBadParentDirectory();
boolean hasBadParentDirectory();
boolean isIPSDetected();
void setIPSDetected();
}