Hello mindenki, valtozatos feladatokat szereztem, es kis segitsege kellene... azt kene megcsinalni, hogy minden domain /private konyvtarat csak ssl-lel lehessen elerni. Fel is huztam egy zorpot, megcsinaltam az ssl-t, az ide vonatkozo konfig reszek: class VirtualHttp(HttpProxy): def config(self): HttpProxy.config(self) self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL) self.request["POST"] = (HTTP_REQ_POLICY, self.filterURL) def filterURL(self, method, url, version): log("http.info", 3, "GET: \"%s\" \"%s\"" % (self.session.session_id, url)) if re.search("http://[^/]+/private.*", url): self.error_info = "This page (/private/) is not accessible in non-secure mode." log("http.info", 3, "GET: private") return HTTP_REQ_REJECT; return HTTP_REQ_ACCEPT; class VirtualHttpS(PsslProxy): def config(self): PsslProxy.config(self) self.stack_proxy = VirtualHttp Az a bajom, hogy ennek felig-meddig ganyolas szaga van, trukkos esetben elofordulhat, hogy http keresnel is https van a "url" valtozoban. Van erre ennel jobb megoldas? Pl valami valtozo beallitasa lehetne, de a VirtualHttpS.stack_proxy-ja egy memoriaban valo hivatkozas (ugysejtem), hogyan lehetne abban az objektumban egy valtozot (client_using_ssl, pl) beallitani, ha a VirtualHttp felett a VirtualHttpS van es nem a Listener... asd -- Daniel VASARHELYI
On Sun, Sep 14, 2003 at 08:18:53PM +0200, Daniel VASARHELYI wrote:
class VirtualHttp(HttpProxy): def config(self): HttpProxy.config(self) self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL) self.request["POST"] = (HTTP_REQ_POLICY, self.filterURL)
def filterURL(self, method, url, version): log("http.info", 3, "GET: \"%s\" \"%s\"" % (self.session.session_id, url)) if re.search("http://[^/]+/private.*", url): self.error_info = "This page (/private/) is not accessible in non-secure mode." log("http.info", 3, "GET: private") return HTTP_REQ_REJECT; return HTTP_REQ_ACCEPT;
class VirtualHttpS(PsslProxy): def config(self): PsslProxy.config(self) self.stack_proxy = VirtualHttp
Az a bajom, hogy ennek felig-meddig ganyolas szaga van, trukkos esetben elofordulhat, hogy http keresnel is https van a "url" valtozoban. Van erre ennel jobb megoldas? Pl valami valtozo beallitasa lehetne, de a VirtualHttpS.stack_proxy-ja egy memoriaban valo hivatkozas (ugysejtem), hogyan lehetne abban az objektumban egy valtozot (client_using_ssl, pl) beallitani, ha a VirtualHttp felett a VirtualHttpS van es nem a Listener...
probald esetleg a self.request_url_file-t hasznalni, ebben nem a teljes url van benne, hanem csak a file resz. (a proxy feldarabolja az URL-t es publikalja a request_url_* attributumokban, ezek le vannak irva a Http proxy docstring-jeben) -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
On Mon, Sep 15, 2003 at 12:42:52PM +0200, Balazs Scheidler wrote:
probald esetleg a self.request_url_file-t hasznalni, ebben nem a teljes url van benne, hanem csak a file resz. (a proxy feldarabolja az URL-t es publikalja a request_url_* attributumokban, ezek le vannak irva a Http proxy docstring-jeben) Az nem problem. Az a problem, hogy http kiszolgalasra egy osztalyt szeretnek hasznalni, es ha ssl-en jon a a keres, akkor Pssl proxy "ala bujtatom" be a http proxyt, igy oldva meg, hogy ugyanaz legyen elerheto ssl-lel es ssl nelkul is. Egyetlen kivetel, hogy amikor az user nem hasznal ssl kapcsolatot, a zorp dobja vissza a kerest, ha /private cimrol van szo. Nem tudom viszont, hogy a VirtualHttpS hogyan tudna "parametert" atadni a stackelt VirtualHttp proxynak.
asd -- Daniel VASARHELYI
On Mon, Sep 15, 2003 at 01:09:38PM +0200, Daniel VASARHELYI wrote:
On Mon, Sep 15, 2003 at 12:42:52PM +0200, Balazs Scheidler wrote:
probald esetleg a self.request_url_file-t hasznalni, ebben nem a teljes url van benne, hanem csak a file resz. (a proxy feldarabolja az URL-t es publikalja a request_url_* attributumokban, ezek le vannak irva a Http proxy docstring-jeben) Az nem problem. Az a problem, hogy http kiszolgalasra egy osztalyt szeretnek hasznalni, es ha ssl-en jon a a keres, akkor Pssl proxy "ala bujtatom" be a http proxyt, igy oldva meg, hogy ugyanaz legyen elerheto ssl-lel es ssl nelkul is. Egyetlen kivetel, hogy amikor az user nem hasznal ssl kapcsolatot, a zorp dobja vissza a kerest, ha /private cimrol van szo. Nem tudom viszont, hogy a VirtualHttpS hogyan tudna "parametert" atadni a stackelt VirtualHttp proxynak.
a sessionon keresztul. pl: a https-ben: self.session.stacked_in_ssl = 1 a http-ben pedig: if hasattr(self.session, "stacked_in_ssl"): ssl else: nemssl esetleg hivatkozhatsz kozvetlenul is ra, de akkor le kell kezelni az AttributeError exception-t: try: if self.session.stacked_in_ssl: #ssl else: #nem ssl except AttributeError: #nem ssl -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
participants (2)
-
Balazs Scheidler
-
Daniel VASARHELYI