How to set App Transport Security (ATS)

บทนำ (Overview)

ATS (App transport Security) เป็นฟีเจอร์ใหม่ความปลอดภัยสำหรับนักพัฒนาโปรแกรมบน “iOS” จะเริ่มต้นที่ “iOS 9.0” และ “OSX 10.11” ซึ่งนักพัฒนาระบบไม่ต้องทำอะไรมันก็จะเปิดใช้งานแล้ว หน้าที่สำคัญคือมันจะบังคับให้การเชื่อมต่อกับ “Server” เฉพาะ “HTTPs” เท่านั้น ถ้า “Application” ถูกโจมตีบังคับให้เชื่อมต่อ “Server” แบบ “HTTP” ตัวโปรแกรมจะป้องกันโดยไม่มีการส่งข้อมูลออกไป จากตัวอย่างเราทดลองเขียนโปรแกรมโดย ให้ “WebView” ของเราเข้าถึง “Web Site” ไม่เข้ารหัส “HTTP” และลองตั้งค่าให้สามารถโหลด Website ที่ไม่มี “HTTPs”

ขั้นตอน (Steps)

  1. ทดลองเขียนโปรแกรมโดยใช้ “Webview” เรียก “Web Site” ไม่มี “HTTPs” เริ่มต้นจากสร้าง “Project” ใหม่ เลือก “Single View Application” จากนั้นคลิก “Next”ATS-01
  2. ตั้งชื่อ “Project” จากนั้นคลิก “Next”ATS-02
  3. เลือกโฟลเดอร์ที่จะสร้าง “Project” แล้วคลิก “Create”ATS-03
  4. จากเมนูด้านซ้ายให้เลือก “Main.storyboard”ATS-04
  5. คลิกATS-05 เพื่อแสดงรายการด้านขวา (ปุ่มอยู่บนขวา)
  6. เมื่อมีเมนูด้านขวาแสดงออกมาให้กดปุ่มATS-06 และค้นหา “Web view” (ปุ่มอยู่ล่างขวา)  ATS-07
  7. เมื่อเจอ “Webview” แล้วให้ลากไปยังที่วาง ๆ “View” ว่าง ๆ ดังนี้ATS-08
  8.  เมื่อลาก “Webview” มาวางบน “View” เสร็จสิ้นจะพบว่า “Webiew” จะอยู่ภายใต้ “View” เราสามารถเปลี่ยนชื่อได้โดยกดปุ่ม “Enter”ATS-09
  9. จากนั้นคลิกเลือกไฟล์ “ViewController.h” โดยกดปุ่ม ATS-11  จะพบว่ามีหน้าต่างสำหรับหน้าเขียนโปรแกรมขึ้นมา ATS-12
  10. ให้กดปุ่ม ATS-13 เพื่อหาหน้า “ViewController.h”ATS-14
  11. ให้ลาก “WebView” ภายใต้ “View” ที่เราสร้างมาไปยัง “ViewController.h”  โดยต้องกดปุ่ม “control”  ค้างเอาไว้ด้วย ATS-15
  12. ให้ลากมาวางไว้ที่ระหว่าง “UIViewController” เพื่อสร้าง “IBOutlet”
    #import <UIKit/UIKit.h>
    @interface ViewController : UIViewController
    @property (weak, nonatomic) IBOutlet UIWebView *wExternal;
    @end
    
  13. ไปที่ไฟล์ “ViewController.m” เพื่อเขียนคำสั่งให้ “WebView” โหลดหน้าเว็บไซต์
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
       NSString *fullURL = @"http://itselectlab.com";
       NSURL *url = [NSURL URLWithString:fullURL];
       NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
       [_wExternal loadRequest:requestObj];   
    }
    
  14. ทดลอง Run โปรแกรมโดยกดปุ่ม ATS-16
  15. เราจะพบว่าโปรแกรมไม่มีอะไรเกิดขึ้น (หน้าขาว ๆ) ATS-17
  16. คลิก ATS-18 เพื่อตรวจสอบ “Logs”
  17. พบว่า “ATS” ได้กัน “HTTP”ATS-19
  18.  เราลองมาตั้งค่าเพื่อปิดใช้งาน “ATS” โดยไปที่ ชื่อโปรเจคของเรา ATS-20
  19. จากนั้นเลือกที่ เลือก “TARGETS” ตามชื่อโปรแกรมATS-21
  20. คลิกขวาเพื่อเพิ่มรายการใหม่ (Add row)ATS-22
  21. เลือก “App Transport Security Settings”ATS-23
  22. คลิกลูกศรเพื่อขยาย จากนั้นเลือก  “Allow Arbitrary Loads”ATS-24
  23. ปรับเปลี่ยนค่าเป็น “Yes”ATS-25
  24. ทดลอง “Run” อีกครั้งATS-26

ใส่ความเห็น