diff --git a/webform.install b/webform.install
index 46c0f61..c420716 100644
--- a/webform.install
+++ b/webform.install
@@ -729,6 +729,38 @@ function webform_requirements($phase) {
     );
   }
 
+  if ($phase != 'install') {
+    $file_components = array();
+
+    $file_upload_security_issues = 0;
+    $nodes = array();
+    $query = db_select('webform', 'w');
+    $query->join('node', 'n', 'w.nid = n.nid');
+    $query->fields('n');
+    $nodes = $query->execute()->fetchAllAssoc('nid');
+    foreach ($nodes as $nid => $node) {
+      $node = node_load($nid);
+      if (in_array(DRUPAL_ANONYMOUS_RID, $node->webform['roles'])) {
+        foreach ($node->webform['components'] as $cid => $component) {
+          if ($component['type'] == 'file') {
+            if ($component['extra']['scheme'] == 'public') {
+              $file_upload_security_issues++;
+            }
+          }
+        }
+      }
+    }
+
+    if ($file_upload_security_issues > 0) {
+      $requirements['webform_upload_security'] = array(
+        'title' => $t('Webform insecure file uploads'),
+        'value' => $t('DANGER! @count insecure Webform(s) found!', array('@count' => $file_upload_security_issues)),
+        'severity' => REQUIREMENT_ERROR,
+        'description' => $t('Public files upload destination is dangerous for webforms that are available for anonymous users.') . ' ' . t('More info: ') . '<a href="https://www.drupal.org/psa-2016-003">DRUPAL-PSA-2016-003<a>' ,
+      );
+    }
+  }
+
   return $requirements;
 }
 
