Jump to content
php.lv forumi
  • 0

Internet Explorer pogas "Clear SSL State" emulācija


usver

Question

Ir nodibināta HTTPS sesija ar Internet Explorer un Ajax, autentificējoties ar sertifikātu.

Pēc minūtēm 20mit remūtais serveris (ar kuru notiek background konekcijas un kuru nevar ietekmēt) pasaka, ka "403 - mēs tevi vairs nepazīstam, ej nafik!".

 

Vēlamais efekts: lai autentifikācijas lodziņš ar sertifikāta izvēli parādītos vēlreiz (kas nozīmētu jaunas sesijas nodibināšanu), taču šķiet, ka to nevar izsaukt mākslīgi.

Vienīgais variants, kā izsaukt šo lodziņu atkārtoti, ir restartēt IE VAI nospiest podziņu "Tools->Internet Options->Content => Clear SSL State, kas pārtrauc HTTPS sesiju.

 

Internetā daudzās vietās tiek minēts šis analogs:

<script type="text/javascript">
 document.execCommand("ClearAuthenticationCache");
</script>

Tas ir ļoti barbarisks, jo lietotājs tiek izmests vispār no visām atvērtajām lapām (patreizējo ieskaitot), un rezultāts maz atšķiras no IE pārstartēšanas.

 

Vai kādam ir zināms programmisks analogs pogas "Clear SSL State" spiešanai? Noderētu visa veida IE-only javascript, vbscript risinājumi.

Edited by usver
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Izvēlētais risinājums tādai lietai:

*) klientam no servera pieprasīt savas sesijas identifikatoru, pēc kura viennozīmīgi var atpazīt sesiju

*) izsaukt klientam to pašu ClearAuthenticationCache

*) atjaunot klienta sesiju, padodot identifikatoru, atjaunojot arī session_id() un datus kukijā.

 

Brutāli, bet darbojas.

Edited by usver
Link to comment
Share on other sites

  • 0

darbu atvieglo sesiju tabula (jo risinājums ir intranet un tā tur dzīvo jau ilgi).

 

identifikators, lai atjaunotu sesiju tiek pieglabāts JS variablī pie klienta starp 2 pieprasījumiem, nekur citur. Tas ir session_id+sha1( session_id() + {id_no_sesiju tabulas, ko neviens cits nevar zināt} ).

ja klients atgriež valīdu čeksummu - tiek atjaunota sesija. ja iztek laiks vai invalīdus datus grūž - tad nav arī cepumiņu.

 

ideālā variantā: pielikt remote_addr un http_user_agent pārbaudi klāt.

Edited by usver
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...