本人是新手,今天寫程式碼突然想到個安全性問題。
對於ajax的各種請求,駭客是否能透過外部進行程式碼提交?因為JS檔案瀏覽器都能看到,也就是能知道你的程式碼,那麼如果駭客在外部用我們的網域進行提交,php能否判斷是否合法呢?例如判斷是否是我們自己的文件提交的?
例如我的js檔案有段程式碼
$('input').click(function(){ $.post('index.php',{a:xx,b:xx},function(a){ xxxxx }) }) 那么如果黑客通过外部提交 xxxxxxxxxxx $('input').click(function(){ xxxxxx $.post('http://www.xxxx.com/index.php',{a:xx,b:xx},function(a){ xxxxx }) xxxxxx }) xxxxxxxxxxx
PHP裡面要如何寫才能防止呢?
CSRF了解下?
外部提交是正常的,需要透過程式來阻止注入。
照你這樣的說法的話,外面ajax模擬提交過來的資料就屬於是跨域了。
這個你有多種方式去處理。例如:
1、可以設定存取權限,比如說只有登入會員才可查看或是限定域名,這樣會對別人的抓取造成一定難度。但這個障礙總是能被解決的。
2、用session產生令牌,提交之後驗證session,合法則馬上註銷這個session,確保每次都有一個新的令牌。
3、分析存取日誌,從伺服器層級限制可疑IP存取。
4、記錄每個IP的操作密度,較頻繁的可不定時要求輸入驗證碼。
........
會有很多種方法,但沒有哪一種說是最好的,建議多管齊下。望採納~