Ben matematiksel bir ifadeyi değerlendirir PHP bir işlevi yapmak için çalışılıyor - vb sin, cos gibi fonksiyonlar Benim yaklaşım sayılar, matematiksel operatörler, ya da matematiksel işlevleri değildir ifadedeki tüm karakterleri silmek için de dahil olmak üzere ve sonra eval () bu dizeyi kullanın. Sorun aynı ifadede hem karakterler ve ifadeler inkâr düzenli ifadeler hakkında yeterli bilmiyorum olmasıdır.
Şimdiye kadar, bu bende ne olduğunu:
$input = preg_replace("/[^0-9+\-.*\/()sincota]/", "", $input);
Açıkçası, günah, cos ve tan için karakterler girdi ifadede herhangi bir sırayla kullanılabilir (izin ziyade only ifadeler sin, cos ve tan). Ben daha da fazla karakter ve fonksiyonlar eklemek için bu işlevini genişletmek, bu kötü niyetli bir kullanıcı olarak daha da büyük bir güvenlik riski uygulaması ile akıllı etkileşim yoluyla herhangi bir PHP komut hakkında yürütmek mümkün olacaktır sunuyor.
Herkes benim regex düzeltmek ve bu sorunu ortadan kaldırmak için bana söyleyebilir misiniz?