Exchange 2013 OWA Sayfasına Captcha Kodu Yerleştirme

 
Exchange 2013 ile yenilenen OWA bağlantı sayfamıza captcha kodu yerleştirip bağlantı sayfasını daha güvenli hale getirebiliriz. Böylelikle oturum açacak kişinin robot olmadığını da kontrol etmiş oluruz. Sürekli oturum açmayı deneyen yazılımlara karşı da güzel bir çözümdür.

Captcha bildiğiniz üzere ekrandaki yazıların altındaki kutucuğa yazılması ile bir doğrulama sağlamaktadır. Siz isterseniz kendi captcha uygulamanızı yazabilirsiniz.  İstersek Google ın bu hazır hizmetinden de yararlanabiliriz.

Bu yazımızda Google ın hazır hizmetinden yararlanacağız.

Öncelikle www.google.com/recaptcha sitesine giriyoruz. Sol tarafta bulunan menülerden “My account” a tıklıyoruz ve gmail hesabımız ile oturum açıyoruz.

İlk olarak yapmamız gereken kendi domainimize özgü olarak public ve private key oluşturmaktır. Bu anahtarları daha sonra kullanacağız.

Domain bölümüne mail.infopark.com.tr şeklinde OWA bağlantı adresini yazın.


 

Bu işlemin sonunda Google size public ve private olarak iki anahtar oluşturacaktır.




 
Bu işlemlerin ardından Exchange 2013 CAS sunucumuzu açıyoruz.
C:Program FilesMicrosoftExchange ServerV15FrontEndHttpProxyowaauth   klasörüne geliyoruz.
Recaptcha.aspx” isimli bir aspx dosyası yaratıyoruz.
Dosyayı notepad ile açıyoruz ve aşağıdaki kodu içerisine yazıyoruz.
 
 
  1. <% @ Page AspCompat=True Language = "VB" %>
  2. <%
  3. ‘ Put your own private key in the next line
  4. Dim strPrivateKey As String = "6LetNQSAAAA…"
  5. Dim strRemoteIP As String = "10.0.0.22"
  6. Dim strChallenge = Request("challenge")
  7. Dim strResponse = Request("response")
  8. Dim objWinHTTP As Object
  9. objWinHTTP = Server.CreateObject("WinHTTP.WinHTTPRequest.5.1")
  10. objWinHTTP.Open("POST""http://www.google.com/recaptcha/api/verify"False)
  11. objWinHTTP.SetRequestHeader("Content-type""application/x-www-form-urlencoded")
  12. Dim strData As String = "privatekey=" & strPrivateKey & _
  13.  "&remoteip=" & strRemoteIP & _
  14.  "&challenge=" & strChallenge & _
  15.  "&response=" & strResponse
  16. objWinHTTP.Send(strData)
  17. Dim strResponseText = objWinHTTP.ResponseText
  18. Response.Write(strResponseText)
  19. %>

 

 
Buradaki “Dim strPrivateKey As String” değeri olarak Google dan aldığınız private anahtarı giriyorsunuz.
“Dim strRemoteIP As String” ise CAS sunucunuzun IP’sidir.
 
Bu aşamadan sonra yazdıklarınızı kaydedip dosyayı kaydedin.
C:Program FilesMicrosoftExchange ServerV15FrontEndHttpProxyowaauth dizini altındaki “logon.aspx” dosyasını notepad ile açıyoruz.
 
CTRL+f tuşu ile “<form” yazarak aratıyoruz.
Çıkan sonucu aşağıdaki gibi değiştiriyoruz. (sadece action =”” şeklinde değiştirilmelidir.)
 
<form action="" method="POST" name="logonForm" ENCTYPE=
 
Ardından “showPasswordCheck checkboxLabel” yazarak aratıyoruz.

 <div class="showPasswordCheck checkboxLabel"> satırının hemen altına aşağıdaki satırları ekliyoruz.
 
 
  1. <div>
  2. <script type="text/javascript">
  3. function myClkLgn()
  4. {
  5.  var oReq = new XMLHttpRequest();
  6.  var sChallenge = document.all.recaptcha_challenge_field.value;
  7.  var sResponse = document.all.recaptcha_response_field.value;
  8.  var sData = "challenge=" + sChallenge + "&response=" + sResponse;
  9.  oReq.open("GET""/owa/auth/recaptcha.aspx?" + sData, false);
  10.  oReq.send(sData);
  11.  if (oReq.responseText.indexOf("true") != -1)
  12.  {
  13.     document.forms[0].action = "/owa/auth.owa";
  14.     clkLgn();
  15.  }
  16.  else
  17.  {
  18.     alert("Invalid captcha response");
  19.  }
  20. }
  21. </script>
  22. <script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=6LetNQSAAAA…">
  23. </script>
  24. <noscript>
  25. <iframe src="https://www.google.com/recaptcha/api/noscript?k=6LetNQSAAAA…" height="300" width="500" frameborder="0">
  26. </iframe>
  27. <br>
  28. <textarea name="recaptcha_challenge_field" rows="3" cols="40">
  29. </textarea>
  30. <input type="hidden" name="recaptcha_response_field" value="manual_challenge">
  31. </noscript>
  32. </div>

 

 
Yukardaki satırlarda yer alan   https://www.google.com/recaptcha/api/challenge?k=6LetNQSAAAA…"> ve https://www.google.com/recaptcha/api/noscript?k=6LetNQSAAAA adreslerin sonuna Google dan aldığımız “Public” anahtarı yazıyoruz.
 
Son olarak “clkLgn” yazarak aratıyoruz. Sonuç olarak bulduğumuz
<div class="signInEnter"><div onclick="clkLgn()"  
Satırı aşağıdaki ile değiştiriyoruz,
<div class="signInEnter"><div onclick="myClkLgn()"
 
Bu işlemlerin ardından OWA bağlantı sayfamıza captcha kodu yerleşmiş olacaktır.
 

 
 
Paylaş

2 thoughts on “Exchange 2013 OWA Sayfasına Captcha Kodu Yerleştirme

  1. Yunus ÇADIRCI

    Burada yazarın kaçırdığı, dikkat edilmesi gerek nokta owa’nın varsayılan login işlem sayfasına yeni oluşturulan sayfa dışından istek gönderilmesinin engellenmesi gerektiğidir. yoksa captcha işe yaramayacaktır. makalede bunla ilgili nokta gözden kaçırılmış gibi. captchanın js istemci tarafında ile kontrol edilmesine değinmiyorum bile.

    Reply

Leave a Reply to Timur Cancel reply

Your email address will not be published. Required fields are marked *